"""Generated human control rulebook.

Do not edit this file by hand.  Regenerate it with:

    python tools/generate_human_rulebook.py

The entries are Python source on purpose: the operational platform can
import, inspect, test, and package the rulebook without parsing external
YAML/JSON during a service-order round.
"""

from __future__ import annotations

from .human_rulebook import HumanControlRule, MCP_TRANSIT_FIELDS, RuleScope

RULE_0001 = HumanControlRule(
    rule_id='business__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='administrador_empresa',
    title='Business Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'administrador_empresa', 'administration', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'administrador_empresaNeed', 'checkoutState', 'administrationGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0002 = HumanControlRule(
    rule_id='business__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='ceo',
    title='Business Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'ceo', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'ceoNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0003 = HumanControlRule(
    rule_id='business__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='gestor_operacional',
    title='Business Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'gestor_operacional', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'gestor_operacionalNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0004 = HumanControlRule(
    rule_id='business__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='suporte',
    title='Business Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'suporte', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'suporteNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0005 = HumanControlRule(
    rule_id='business__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='atendimento_cliente',
    title='Business Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'atendimento_cliente', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'atendimento_clienteNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0006 = HumanControlRule(
    rule_id='business__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='financeiro',
    title='Business Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'financeiro', 'finance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'financeiroNeed', 'checkoutState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0007 = HumanControlRule(
    rule_id='business__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='contador',
    title='Business Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'contador', 'finance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'contadorNeed', 'checkoutState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0008 = HumanControlRule(
    rule_id='business__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='juridico',
    title='Business Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'juridico', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'juridicoNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0009 = HumanControlRule(
    rule_id='business__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='secretaria',
    title='Business Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'secretaria', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'secretariaNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0010 = HumanControlRule(
    rule_id='business__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='tecnico',
    title='Business Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'tecnico', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'tecnicoNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0011 = HumanControlRule(
    rule_id='business__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='usuario_final',
    title='Business Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'usuario_final', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'usuario_finalNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0012 = HumanControlRule(
    rule_id='business__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='cliente_externo',
    title='Business Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'cliente_externo', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'cliente_externoNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0013 = HumanControlRule(
    rule_id='business__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='business',
    profile_id='planejamento_estrategico',
    title='Business Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Business Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'billing', 'entitlements'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('business', 'tudo-para-ia-business-platform', 'planejamento_estrategico', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'planejamento_estrategicoNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de business para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0014 = HumanControlRule(
    rule_id='business__surface__checkout',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='business',
    profile_id='todos',
    title='Superficie checkout de Business Platform passa pelo MCP',
    purpose='Formalizar que a superficie checkout de Business Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('checkout', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('checkout', 'tudo-para-ia-business-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'checkout ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'todosNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover checkout de business a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0015 = HumanControlRule(
    rule_id='business__surface__billing',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='business',
    profile_id='todos',
    title='Superficie billing de Business Platform passa pelo MCP',
    purpose='Formalizar que a superficie billing de Business Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('billing', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('billing', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('billing', 'tudo-para-ia-business-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'billing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'todosNeed', 'billingState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie billing', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover billing de business a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0016 = HumanControlRule(
    rule_id='business__surface__entitlements',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='business',
    profile_id='todos',
    title='Superficie entitlements de Business Platform passa pelo MCP',
    purpose='Formalizar que a superficie entitlements de Business Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('entitlements', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('entitlements', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('entitlements', 'tudo-para-ia-business-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'entitlements ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'todosNeed', 'entitlementsState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie entitlements', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover entitlements de business a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0017 = HumanControlRule(
    rule_id='business__surface__consumption',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='business',
    profile_id='todos',
    title='Superficie consumption de Business Platform passa pelo MCP',
    purpose='Formalizar que a superficie consumption de Business Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consumption', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('consumption', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('consumption', 'tudo-para-ia-business-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consumption ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'todosNeed', 'consumptionState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie consumption', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover consumption de business a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0018 = HumanControlRule(
    rule_id='business__surface__commercial-readiness',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='business',
    profile_id='todos',
    title='Superficie commercial-readiness de Business Platform passa pelo MCP',
    purpose='Formalizar que a superficie commercial-readiness de Business Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('commercial-readiness', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('commercial-readiness', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('commercial-readiness', 'tudo-para-ia-business-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'commercial-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'todosNeed', 'commercial-readinessState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie commercial-readiness', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover commercial-readiness de business a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0019 = HumanControlRule(
    rule_id='business__administrador_empresa__checkout',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa checkout de Business Platform com verdade rastreavel',
    purpose='Exigir que checkout sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'business', 'checkout', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'checkout', 'business', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'checkout ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'administrador_empresaNeed', 'checkoutState', 'administrationGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar checkout para administrador_empresa em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0020 = HumanControlRule(
    rule_id='business__administrador_empresa__billing',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa billing de Business Platform com verdade rastreavel',
    purpose='Exigir que billing sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('billing', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'business', 'billing', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'billing', 'business', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'billing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'administrador_empresaNeed', 'billingState', 'administrationGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie billing', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar billing para administrador_empresa em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0021 = HumanControlRule(
    rule_id='business__administrador_empresa__entitlements',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa entitlements de Business Platform com verdade rastreavel',
    purpose='Exigir que entitlements sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('entitlements', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'business', 'entitlements', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'entitlements', 'business', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'entitlements ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'administrador_empresaNeed', 'entitlementsState', 'administrationGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie entitlements', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar entitlements para administrador_empresa em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0022 = HumanControlRule(
    rule_id='business__administrador_empresa__consumption',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa consumption de Business Platform com verdade rastreavel',
    purpose='Exigir que consumption sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consumption', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'business', 'consumption', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'consumption', 'business', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consumption ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'administrador_empresaNeed', 'consumptionState', 'administrationGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie consumption', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar consumption para administrador_empresa em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0023 = HumanControlRule(
    rule_id='business__administrador_empresa__commercial-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa commercial-readiness de Business Platform com verdade rastreavel',
    purpose='Exigir que commercial-readiness sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('commercial-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'business', 'commercial-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'commercial-readiness', 'business', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'commercial-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'administrador_empresaNeed', 'commercial-readinessState', 'administrationGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie commercial-readiness', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar commercial-readiness para administrador_empresa em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0024 = HumanControlRule(
    rule_id='business__ceo__checkout',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='ceo',
    title='CEO usa checkout de Business Platform com verdade rastreavel',
    purpose='Exigir que checkout sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'checkout', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'checkout', 'business', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'checkout ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'ceoNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar checkout para ceo em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0025 = HumanControlRule(
    rule_id='business__ceo__billing',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='ceo',
    title='CEO usa billing de Business Platform com verdade rastreavel',
    purpose='Exigir que billing sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('billing', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'billing', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'billing', 'business', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'billing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'ceoNeed', 'billingState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie billing', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar billing para ceo em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0026 = HumanControlRule(
    rule_id='business__ceo__entitlements',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='ceo',
    title='CEO usa entitlements de Business Platform com verdade rastreavel',
    purpose='Exigir que entitlements sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('entitlements', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'entitlements', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'entitlements', 'business', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'entitlements ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'ceoNeed', 'entitlementsState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie entitlements', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar entitlements para ceo em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0027 = HumanControlRule(
    rule_id='business__ceo__consumption',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='ceo',
    title='CEO usa consumption de Business Platform com verdade rastreavel',
    purpose='Exigir que consumption sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consumption', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'consumption', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'consumption', 'business', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consumption ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'ceoNeed', 'consumptionState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie consumption', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar consumption para ceo em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0028 = HumanControlRule(
    rule_id='business__ceo__commercial-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='ceo',
    title='CEO usa commercial-readiness de Business Platform com verdade rastreavel',
    purpose='Exigir que commercial-readiness sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('commercial-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'commercial-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'commercial-readiness', 'business', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'commercial-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'ceoNeed', 'commercial-readinessState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie commercial-readiness', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar commercial-readiness para ceo em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0029 = HumanControlRule(
    rule_id='business__financeiro__checkout',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='financeiro',
    title='Financeiro usa checkout de Business Platform com verdade rastreavel',
    purpose='Exigir que checkout sirva Financeiro com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'checkout', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('financeiro', 'checkout', 'business', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'checkout ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'financeiroNeed', 'checkoutState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar checkout para financeiro em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0030 = HumanControlRule(
    rule_id='business__financeiro__billing',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='financeiro',
    title='Financeiro usa billing de Business Platform com verdade rastreavel',
    purpose='Exigir que billing sirva Financeiro com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('billing', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'billing', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('financeiro', 'billing', 'business', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'billing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'financeiroNeed', 'billingState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie billing', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar billing para financeiro em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0031 = HumanControlRule(
    rule_id='business__financeiro__entitlements',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='financeiro',
    title='Financeiro usa entitlements de Business Platform com verdade rastreavel',
    purpose='Exigir que entitlements sirva Financeiro com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('entitlements', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'entitlements', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('financeiro', 'entitlements', 'business', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'entitlements ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'financeiroNeed', 'entitlementsState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie entitlements', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar entitlements para financeiro em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0032 = HumanControlRule(
    rule_id='business__financeiro__consumption',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='financeiro',
    title='Financeiro usa consumption de Business Platform com verdade rastreavel',
    purpose='Exigir que consumption sirva Financeiro com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consumption', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'consumption', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('financeiro', 'consumption', 'business', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consumption ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'financeiroNeed', 'consumptionState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie consumption', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar consumption para financeiro em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0033 = HumanControlRule(
    rule_id='business__financeiro__commercial-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='financeiro',
    title='Financeiro usa commercial-readiness de Business Platform com verdade rastreavel',
    purpose='Exigir que commercial-readiness sirva Financeiro com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('commercial-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'commercial-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('financeiro', 'commercial-readiness', 'business', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'commercial-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'financeiroNeed', 'commercial-readinessState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie commercial-readiness', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar commercial-readiness para financeiro em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0034 = HumanControlRule(
    rule_id='business__contador__checkout',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='contador',
    title='Contador usa checkout de Business Platform com verdade rastreavel',
    purpose='Exigir que checkout sirva Contador com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'checkout', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('contador', 'checkout', 'business', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'checkout ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'contadorNeed', 'checkoutState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar checkout para contador em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0035 = HumanControlRule(
    rule_id='business__contador__billing',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='contador',
    title='Contador usa billing de Business Platform com verdade rastreavel',
    purpose='Exigir que billing sirva Contador com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('billing', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'billing', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('contador', 'billing', 'business', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'billing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'contadorNeed', 'billingState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie billing', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar billing para contador em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0036 = HumanControlRule(
    rule_id='business__contador__entitlements',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='contador',
    title='Contador usa entitlements de Business Platform com verdade rastreavel',
    purpose='Exigir que entitlements sirva Contador com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('entitlements', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'entitlements', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('contador', 'entitlements', 'business', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'entitlements ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'contadorNeed', 'entitlementsState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie entitlements', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar entitlements para contador em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0037 = HumanControlRule(
    rule_id='business__contador__consumption',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='contador',
    title='Contador usa consumption de Business Platform com verdade rastreavel',
    purpose='Exigir que consumption sirva Contador com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consumption', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'consumption', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('contador', 'consumption', 'business', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consumption ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'contadorNeed', 'consumptionState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie consumption', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar consumption para contador em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0038 = HumanControlRule(
    rule_id='business__contador__commercial-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='contador',
    title='Contador usa commercial-readiness de Business Platform com verdade rastreavel',
    purpose='Exigir que commercial-readiness sirva Contador com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('commercial-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'business', 'commercial-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('contador', 'commercial-readiness', 'business', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'commercial-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'contadorNeed', 'commercial-readinessState', 'financeGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie commercial-readiness', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar commercial-readiness para contador em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0039 = HumanControlRule(
    rule_id='business__cliente_externo__checkout',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='cliente_externo',
    title='Cliente externo usa checkout de Business Platform com verdade rastreavel',
    purpose='Exigir que checkout sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('checkout', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'checkout', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'checkout', 'business', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'checkout ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'cliente_externoNeed', 'checkoutState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie checkout', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar checkout para cliente_externo em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0040 = HumanControlRule(
    rule_id='business__cliente_externo__billing',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='cliente_externo',
    title='Cliente externo usa billing de Business Platform com verdade rastreavel',
    purpose='Exigir que billing sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('billing', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'billing', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'billing', 'business', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'billing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'cliente_externoNeed', 'billingState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie billing', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar billing para cliente_externo em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0041 = HumanControlRule(
    rule_id='business__cliente_externo__entitlements',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='cliente_externo',
    title='Cliente externo usa entitlements de Business Platform com verdade rastreavel',
    purpose='Exigir que entitlements sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('entitlements', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'entitlements', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'entitlements', 'business', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'entitlements ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'cliente_externoNeed', 'entitlementsState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie entitlements', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar entitlements para cliente_externo em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0042 = HumanControlRule(
    rule_id='business__cliente_externo__consumption',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='cliente_externo',
    title='Cliente externo usa consumption de Business Platform com verdade rastreavel',
    purpose='Exigir que consumption sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consumption', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'consumption', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'consumption', 'business', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consumption ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'cliente_externoNeed', 'consumptionState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie consumption', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar consumption para cliente_externo em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0043 = HumanControlRule(
    rule_id='business__cliente_externo__commercial-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='business',
    profile_id='cliente_externo',
    title='Cliente externo usa commercial-readiness de Business Platform com verdade rastreavel',
    purpose='Exigir que commercial-readiness sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('commercial-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'business', 'commercial-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'commercial-readiness', 'business', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'commercial-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'businessStatus', 'cliente_externoNeed', 'commercial-readinessState', 'commercialGate'),
    validation_steps=('confirmar que business expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie commercial-readiness', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar commercial-readiness para cliente_externo em business',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0044 = HumanControlRule(
    rule_id='business__depends__identity',
    scope=RuleScope.DEPENDENCY,
    platform_id='business',
    profile_id='gestor_operacional',
    title='Business Platform declara dependencia controlada com identity',
    purpose='Evitar integracao direta invisivel entre business e identity; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('business', 'identity', 'tudo-para-ia-identity-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-business-platform', 'tudo-para-ia-identity-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia business->identity no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia business->identity no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0045 = HumanControlRule(
    rule_id='business__depends__integracoes',
    scope=RuleScope.DEPENDENCY,
    platform_id='business',
    profile_id='gestor_operacional',
    title='Business Platform declara dependencia controlada com integracoes',
    purpose='Evitar integracao direta invisivel entre business e integracoes; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('business', 'integracoes', 'tudo-para-ia-integracoes-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-business-platform', 'tudo-para-ia-integracoes-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia business->integracoes no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia business->integracoes no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0046 = HumanControlRule(
    rule_id='business__depends__finance',
    scope=RuleScope.DEPENDENCY,
    platform_id='business',
    profile_id='gestor_operacional',
    title='Business Platform declara dependencia controlada com finance',
    purpose='Evitar integracao direta invisivel entre business e finance; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('business', 'finance', 'tudo-para-ia-finance-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-business-platform', 'tudo-para-ia-finance-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia business->finance no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia business->finance no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0047 = HumanControlRule(
    rule_id='business__depends__customer_ops',
    scope=RuleScope.DEPENDENCY,
    platform_id='business',
    profile_id='gestor_operacional',
    title='Business Platform declara dependencia controlada com customer_ops',
    purpose='Evitar integracao direta invisivel entre business e customer_ops; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='business via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('business', 'customer_ops', 'tudo-para-ia-customer-ops-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-business-platform', 'tudo-para-ia-customer-ops-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia business->customer_ops no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia business->customer_ops no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0048 = HumanControlRule(
    rule_id='compliance__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='administrador_empresa',
    title='Compliance Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'administrador_empresa', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'administrador_empresaNeed', 'privacyState', 'securityGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0049 = HumanControlRule(
    rule_id='compliance__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='ceo',
    title='Compliance Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'ceo', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'ceoNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0050 = HumanControlRule(
    rule_id='compliance__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='gestor_operacional',
    title='Compliance Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'gestor_operacional', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'gestor_operacionalNeed', 'privacyState', 'governanceGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0051 = HumanControlRule(
    rule_id='compliance__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='suporte',
    title='Compliance Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'suporte', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'suporteNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0052 = HumanControlRule(
    rule_id='compliance__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='atendimento_cliente',
    title='Compliance Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'atendimento_cliente', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'atendimento_clienteNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0053 = HumanControlRule(
    rule_id='compliance__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='financeiro',
    title='Compliance Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'financeiro', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'financeiroNeed', 'privacyState', 'governanceGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0054 = HumanControlRule(
    rule_id='compliance__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='contador',
    title='Compliance Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'contador', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'contadorNeed', 'privacyState', 'governanceGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0055 = HumanControlRule(
    rule_id='compliance__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='juridico',
    title='Compliance Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'juridico', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'juridicoNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0056 = HumanControlRule(
    rule_id='compliance__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='secretaria',
    title='Compliance Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'secretaria', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'secretariaNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0057 = HumanControlRule(
    rule_id='compliance__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='tecnico',
    title='Compliance Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'tecnico', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'tecnicoNeed', 'privacyState', 'securityGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0058 = HumanControlRule(
    rule_id='compliance__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='usuario_final',
    title='Compliance Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'usuario_final', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'usuario_finalNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0059 = HumanControlRule(
    rule_id='compliance__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='cliente_externo',
    title='Compliance Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'cliente_externo', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'cliente_externoNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0060 = HumanControlRule(
    rule_id='compliance__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='compliance',
    profile_id='planejamento_estrategico',
    title='Compliance Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Compliance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'risk', 'audit'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'compliance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('compliance', 'tudo-para-ia-compliance-platform', 'planejamento_estrategico', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'planejamento_estrategicoNeed', 'privacyState', 'governanceGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de compliance para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0061 = HumanControlRule(
    rule_id='compliance__surface__privacy',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='compliance',
    profile_id='todos',
    title='Superficie privacy de Compliance Platform passa pelo MCP',
    purpose='Formalizar que a superficie privacy de Compliance Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('privacy', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('privacy', 'tudo-para-ia-compliance-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'privacy ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'todosNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover privacy de compliance a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0062 = HumanControlRule(
    rule_id='compliance__surface__risk',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='compliance',
    profile_id='todos',
    title='Superficie risk de Compliance Platform passa pelo MCP',
    purpose='Formalizar que a superficie risk de Compliance Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('risk', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('risk', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('risk', 'tudo-para-ia-compliance-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'risk ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'todosNeed', 'riskState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie risk', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover risk de compliance a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0063 = HumanControlRule(
    rule_id='compliance__surface__audit',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='compliance',
    profile_id='todos',
    title='Superficie audit de Compliance Platform passa pelo MCP',
    purpose='Formalizar que a superficie audit de Compliance Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('audit', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('audit', 'tudo-para-ia-compliance-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'todosNeed', 'auditState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover audit de compliance a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0064 = HumanControlRule(
    rule_id='compliance__surface__consent',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='compliance',
    profile_id='todos',
    title='Superficie consent de Compliance Platform passa pelo MCP',
    purpose='Formalizar que a superficie consent de Compliance Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consent', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('consent', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('consent', 'tudo-para-ia-compliance-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consent ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'todosNeed', 'consentState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie consent', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover consent de compliance a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0065 = HumanControlRule(
    rule_id='compliance__surface__retention',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='compliance',
    profile_id='todos',
    title='Superficie retention de Compliance Platform passa pelo MCP',
    purpose='Formalizar que a superficie retention de Compliance Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('retention', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('retention', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('retention', 'tudo-para-ia-compliance-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'retention ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'todosNeed', 'retentionState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie retention', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover retention de compliance a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0066 = HumanControlRule(
    rule_id='compliance__administrador_empresa__privacy',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa privacy de Compliance Platform com verdade rastreavel',
    purpose='Exigir que privacy sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'compliance', 'privacy', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'privacy', 'compliance', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'privacy ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'administrador_empresaNeed', 'privacyState', 'securityGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar privacy para administrador_empresa em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0067 = HumanControlRule(
    rule_id='compliance__administrador_empresa__risk',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa risk de Compliance Platform com verdade rastreavel',
    purpose='Exigir que risk sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('risk', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'compliance', 'risk', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'risk', 'compliance', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'risk ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'administrador_empresaNeed', 'riskState', 'securityGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie risk', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar risk para administrador_empresa em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0068 = HumanControlRule(
    rule_id='compliance__administrador_empresa__audit',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa audit de Compliance Platform com verdade rastreavel',
    purpose='Exigir que audit sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'compliance', 'audit', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'audit', 'compliance', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'administrador_empresaNeed', 'auditState', 'securityGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar audit para administrador_empresa em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0069 = HumanControlRule(
    rule_id='compliance__administrador_empresa__consent',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa consent de Compliance Platform com verdade rastreavel',
    purpose='Exigir que consent sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consent', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'compliance', 'consent', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'consent', 'compliance', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consent ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'administrador_empresaNeed', 'consentState', 'securityGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie consent', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar consent para administrador_empresa em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0070 = HumanControlRule(
    rule_id='compliance__administrador_empresa__retention',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa retention de Compliance Platform com verdade rastreavel',
    purpose='Exigir que retention sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('retention', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'compliance', 'retention', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'retention', 'compliance', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'retention ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'administrador_empresaNeed', 'retentionState', 'securityGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie retention', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar retention para administrador_empresa em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0071 = HumanControlRule(
    rule_id='compliance__ceo__privacy',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='ceo',
    title='CEO usa privacy de Compliance Platform com verdade rastreavel',
    purpose='Exigir que privacy sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'privacy', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'privacy', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'privacy ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'ceoNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar privacy para ceo em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0072 = HumanControlRule(
    rule_id='compliance__ceo__risk',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='ceo',
    title='CEO usa risk de Compliance Platform com verdade rastreavel',
    purpose='Exigir que risk sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('risk', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'risk', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'risk', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'risk ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'ceoNeed', 'riskState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie risk', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar risk para ceo em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0073 = HumanControlRule(
    rule_id='compliance__ceo__audit',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='ceo',
    title='CEO usa audit de Compliance Platform com verdade rastreavel',
    purpose='Exigir que audit sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'audit', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'audit', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'ceoNeed', 'auditState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar audit para ceo em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0074 = HumanControlRule(
    rule_id='compliance__ceo__consent',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='ceo',
    title='CEO usa consent de Compliance Platform com verdade rastreavel',
    purpose='Exigir que consent sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consent', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'consent', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'consent', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consent ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'ceoNeed', 'consentState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie consent', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar consent para ceo em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0075 = HumanControlRule(
    rule_id='compliance__ceo__retention',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='ceo',
    title='CEO usa retention de Compliance Platform com verdade rastreavel',
    purpose='Exigir que retention sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('retention', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'retention', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'retention', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'retention ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'ceoNeed', 'retentionState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie retention', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar retention para ceo em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0076 = HumanControlRule(
    rule_id='compliance__suporte__privacy',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='suporte',
    title='Equipe de suporte usa privacy de Compliance Platform com verdade rastreavel',
    purpose='Exigir que privacy sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'privacy', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'privacy', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'privacy ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'suporteNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar privacy para suporte em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0077 = HumanControlRule(
    rule_id='compliance__suporte__risk',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='suporte',
    title='Equipe de suporte usa risk de Compliance Platform com verdade rastreavel',
    purpose='Exigir que risk sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('risk', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'risk', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'risk', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'risk ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'suporteNeed', 'riskState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie risk', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar risk para suporte em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0078 = HumanControlRule(
    rule_id='compliance__suporte__audit',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='suporte',
    title='Equipe de suporte usa audit de Compliance Platform com verdade rastreavel',
    purpose='Exigir que audit sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'audit', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'audit', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'suporteNeed', 'auditState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar audit para suporte em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0079 = HumanControlRule(
    rule_id='compliance__suporte__consent',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='suporte',
    title='Equipe de suporte usa consent de Compliance Platform com verdade rastreavel',
    purpose='Exigir que consent sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consent', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'consent', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'consent', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consent ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'suporteNeed', 'consentState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie consent', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar consent para suporte em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0080 = HumanControlRule(
    rule_id='compliance__suporte__retention',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='suporte',
    title='Equipe de suporte usa retention de Compliance Platform com verdade rastreavel',
    purpose='Exigir que retention sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('retention', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'retention', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'retention', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'retention ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'suporteNeed', 'retentionState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie retention', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar retention para suporte em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0081 = HumanControlRule(
    rule_id='compliance__juridico__privacy',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='juridico',
    title='Juridico usa privacy de Compliance Platform com verdade rastreavel',
    purpose='Exigir que privacy sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('privacy', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'privacy', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'privacy', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'privacy ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'juridicoNeed', 'privacyState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie privacy', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar privacy para juridico em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0082 = HumanControlRule(
    rule_id='compliance__juridico__risk',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='juridico',
    title='Juridico usa risk de Compliance Platform com verdade rastreavel',
    purpose='Exigir que risk sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('risk', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'risk', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'risk', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'risk ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'juridicoNeed', 'riskState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie risk', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar risk para juridico em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0083 = HumanControlRule(
    rule_id='compliance__juridico__audit',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='juridico',
    title='Juridico usa audit de Compliance Platform com verdade rastreavel',
    purpose='Exigir que audit sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'audit', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'audit', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'juridicoNeed', 'auditState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar audit para juridico em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0084 = HumanControlRule(
    rule_id='compliance__juridico__consent',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='juridico',
    title='Juridico usa consent de Compliance Platform com verdade rastreavel',
    purpose='Exigir que consent sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('consent', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'consent', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'consent', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'consent ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'juridicoNeed', 'consentState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie consent', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar consent para juridico em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0085 = HumanControlRule(
    rule_id='compliance__juridico__retention',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='compliance',
    profile_id='juridico',
    title='Juridico usa retention de Compliance Platform com verdade rastreavel',
    purpose='Exigir que retention sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('retention', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'compliance', 'retention', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'retention', 'compliance', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'retention ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'complianceStatus', 'juridicoNeed', 'retentionState', 'legalGate'),
    validation_steps=('confirmar que compliance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie retention', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar retention para juridico em compliance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0086 = HumanControlRule(
    rule_id='compliance__depends__identity',
    scope=RuleScope.DEPENDENCY,
    platform_id='compliance',
    profile_id='gestor_operacional',
    title='Compliance Platform declara dependencia controlada com identity',
    purpose='Evitar integracao direta invisivel entre compliance e identity; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('compliance', 'identity', 'tudo-para-ia-identity-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-compliance-platform', 'tudo-para-ia-identity-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia compliance->identity no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia compliance->identity no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0087 = HumanControlRule(
    rule_id='compliance__depends__docs',
    scope=RuleScope.DEPENDENCY,
    platform_id='compliance',
    profile_id='gestor_operacional',
    title='Compliance Platform declara dependencia controlada com docs',
    purpose='Evitar integracao direta invisivel entre compliance e docs; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('compliance', 'docs', 'tudo-para-ia-docs-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-compliance-platform', 'tudo-para-ia-docs-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia compliance->docs no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia compliance->docs no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0088 = HumanControlRule(
    rule_id='compliance__depends__customer_ops',
    scope=RuleScope.DEPENDENCY,
    platform_id='compliance',
    profile_id='gestor_operacional',
    title='Compliance Platform declara dependencia controlada com customer_ops',
    purpose='Evitar integracao direta invisivel entre compliance e customer_ops; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='compliance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('compliance', 'customer_ops', 'tudo-para-ia-customer-ops-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-compliance-platform', 'tudo-para-ia-customer-ops-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia compliance->customer_ops no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia compliance->customer_ops no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0089 = HumanControlRule(
    rule_id='customer_ops__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='administrador_empresa',
    title='Customer Ops Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'administrador_empresa', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'administrador_empresaNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0090 = HumanControlRule(
    rule_id='customer_ops__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='ceo',
    title='Customer Ops Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'ceo', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'ceoNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0091 = HumanControlRule(
    rule_id='customer_ops__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='gestor_operacional',
    title='Customer Ops Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'gestor_operacional', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'gestor_operacionalNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0092 = HumanControlRule(
    rule_id='customer_ops__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='suporte',
    title='Customer Ops Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'suporte', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'suporteNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0093 = HumanControlRule(
    rule_id='customer_ops__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='atendimento_cliente',
    title='Customer Ops Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'atendimento_cliente', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'atendimento_clienteNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0094 = HumanControlRule(
    rule_id='customer_ops__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='financeiro',
    title='Customer Ops Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'financeiro', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'financeiroNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0095 = HumanControlRule(
    rule_id='customer_ops__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='contador',
    title='Customer Ops Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'contador', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'contadorNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0096 = HumanControlRule(
    rule_id='customer_ops__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='juridico',
    title='Customer Ops Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'juridico', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'juridicoNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0097 = HumanControlRule(
    rule_id='customer_ops__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='secretaria',
    title='Customer Ops Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'secretaria', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'secretariaNeed', 'ticketsState', 'operationsGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0098 = HumanControlRule(
    rule_id='customer_ops__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='tecnico',
    title='Customer Ops Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'tecnico', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'tecnicoNeed', 'ticketsState', 'operationsGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0099 = HumanControlRule(
    rule_id='customer_ops__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='usuario_final',
    title='Customer Ops Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'usuario_final', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'usuario_finalNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0100 = HumanControlRule(
    rule_id='customer_ops__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='cliente_externo',
    title='Customer Ops Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'cliente_externo', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'cliente_externoNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0101 = HumanControlRule(
    rule_id='customer_ops__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='customer_ops',
    profile_id='planejamento_estrategico',
    title='Customer Ops Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Customer Ops Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'incidents', 'diagnostics'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('customer_ops', 'tudo-para-ia-customer-ops-platform', 'planejamento_estrategico', 'support', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'planejamento_estrategicoNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de customer_ops para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0102 = HumanControlRule(
    rule_id='customer_ops__surface__tickets',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='customer_ops',
    profile_id='todos',
    title='Superficie tickets de Customer Ops Platform passa pelo MCP',
    purpose='Formalizar que a superficie tickets de Customer Ops Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('tickets', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('tickets', 'tudo-para-ia-customer-ops-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'tickets ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'todosNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover tickets de customer_ops a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0103 = HumanControlRule(
    rule_id='customer_ops__surface__incidents',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='customer_ops',
    profile_id='todos',
    title='Superficie incidents de Customer Ops Platform passa pelo MCP',
    purpose='Formalizar que a superficie incidents de Customer Ops Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('incidents', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('incidents', 'tudo-para-ia-customer-ops-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'todosNeed', 'incidentsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover incidents de customer_ops a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0104 = HumanControlRule(
    rule_id='customer_ops__surface__diagnostics',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='customer_ops',
    profile_id='todos',
    title='Superficie diagnostics de Customer Ops Platform passa pelo MCP',
    purpose='Formalizar que a superficie diagnostics de Customer Ops Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('diagnostics', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('diagnostics', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('diagnostics', 'tudo-para-ia-customer-ops-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'diagnostics ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'todosNeed', 'diagnosticsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie diagnostics', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover diagnostics de customer_ops a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0105 = HumanControlRule(
    rule_id='customer_ops__surface__customer-status',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='customer_ops',
    profile_id='todos',
    title='Superficie customer-status de Customer Ops Platform passa pelo MCP',
    purpose='Formalizar que a superficie customer-status de Customer Ops Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('customer-status', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('customer-status', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('customer-status', 'tudo-para-ia-customer-ops-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'customer-status ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'todosNeed', 'customer-statusState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie customer-status', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover customer-status de customer_ops a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0106 = HumanControlRule(
    rule_id='customer_ops__surface__handoffs',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='customer_ops',
    profile_id='todos',
    title='Superficie handoffs de Customer Ops Platform passa pelo MCP',
    purpose='Formalizar que a superficie handoffs de Customer Ops Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('handoffs', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('handoffs', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('handoffs', 'tudo-para-ia-customer-ops-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'handoffs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'todosNeed', 'handoffsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie handoffs', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover handoffs de customer_ops a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0107 = HumanControlRule(
    rule_id='customer_ops__gestor_operacional__tickets',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='gestor_operacional',
    title='Gestor operacional usa tickets de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que tickets sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'customer_ops', 'tickets', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'tickets', 'customer_ops', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'tickets ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'gestor_operacionalNeed', 'ticketsState', 'operationsGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tickets para gestor_operacional em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0108 = HumanControlRule(
    rule_id='customer_ops__gestor_operacional__incidents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='gestor_operacional',
    title='Gestor operacional usa incidents de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que incidents sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'customer_ops', 'incidents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'incidents', 'customer_ops', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'gestor_operacionalNeed', 'incidentsState', 'operationsGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar incidents para gestor_operacional em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0109 = HumanControlRule(
    rule_id='customer_ops__gestor_operacional__diagnostics',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='gestor_operacional',
    title='Gestor operacional usa diagnostics de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que diagnostics sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('diagnostics', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'customer_ops', 'diagnostics', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'diagnostics', 'customer_ops', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'diagnostics ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'gestor_operacionalNeed', 'diagnosticsState', 'operationsGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie diagnostics', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar diagnostics para gestor_operacional em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0110 = HumanControlRule(
    rule_id='customer_ops__gestor_operacional__customer-status',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='gestor_operacional',
    title='Gestor operacional usa customer-status de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que customer-status sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('customer-status', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'customer_ops', 'customer-status', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'customer-status', 'customer_ops', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'customer-status ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'gestor_operacionalNeed', 'customer-statusState', 'operationsGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie customer-status', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar customer-status para gestor_operacional em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0111 = HumanControlRule(
    rule_id='customer_ops__gestor_operacional__handoffs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='gestor_operacional',
    title='Gestor operacional usa handoffs de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que handoffs sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('handoffs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'customer_ops', 'handoffs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'handoffs', 'customer_ops', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'handoffs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'gestor_operacionalNeed', 'handoffsState', 'operationsGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie handoffs', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar handoffs para gestor_operacional em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0112 = HumanControlRule(
    rule_id='customer_ops__suporte__tickets',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='suporte',
    title='Equipe de suporte usa tickets de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que tickets sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'tickets', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'tickets', 'customer_ops', 'support', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'tickets ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'suporteNeed', 'ticketsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tickets para suporte em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0113 = HumanControlRule(
    rule_id='customer_ops__suporte__incidents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='suporte',
    title='Equipe de suporte usa incidents de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que incidents sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'incidents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'incidents', 'customer_ops', 'support', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'suporteNeed', 'incidentsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar incidents para suporte em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0114 = HumanControlRule(
    rule_id='customer_ops__suporte__diagnostics',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='suporte',
    title='Equipe de suporte usa diagnostics de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que diagnostics sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('diagnostics', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'diagnostics', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'diagnostics', 'customer_ops', 'support', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'diagnostics ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'suporteNeed', 'diagnosticsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie diagnostics', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar diagnostics para suporte em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0115 = HumanControlRule(
    rule_id='customer_ops__suporte__customer-status',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='suporte',
    title='Equipe de suporte usa customer-status de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que customer-status sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('customer-status', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'customer-status', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'customer-status', 'customer_ops', 'support', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'customer-status ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'suporteNeed', 'customer-statusState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie customer-status', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar customer-status para suporte em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0116 = HumanControlRule(
    rule_id='customer_ops__suporte__handoffs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='suporte',
    title='Equipe de suporte usa handoffs de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que handoffs sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('handoffs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('support', 'incident', 'diagnostic', 'nextAction', 'ticket', 'customer_ops', 'handoffs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'handoffs', 'customer_ops', 'support', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'handoffs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'suporteNeed', 'handoffsState', 'supportGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie handoffs', 'registrar evidencia sanitizada da categoria support', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar handoffs para suporte em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0117 = HumanControlRule(
    rule_id='customer_ops__atendimento_cliente__tickets',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa tickets de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que tickets sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'customer_ops', 'tickets', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'tickets', 'customer_ops', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'tickets ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'atendimento_clienteNeed', 'ticketsState', 'experienceGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tickets para atendimento_cliente em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0118 = HumanControlRule(
    rule_id='customer_ops__atendimento_cliente__incidents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa incidents de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que incidents sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'customer_ops', 'incidents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'incidents', 'customer_ops', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'atendimento_clienteNeed', 'incidentsState', 'experienceGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar incidents para atendimento_cliente em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0119 = HumanControlRule(
    rule_id='customer_ops__atendimento_cliente__diagnostics',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa diagnostics de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que diagnostics sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('diagnostics', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'customer_ops', 'diagnostics', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'diagnostics', 'customer_ops', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'diagnostics ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'atendimento_clienteNeed', 'diagnosticsState', 'experienceGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie diagnostics', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar diagnostics para atendimento_cliente em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0120 = HumanControlRule(
    rule_id='customer_ops__atendimento_cliente__customer-status',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa customer-status de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que customer-status sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('customer-status', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'customer_ops', 'customer-status', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'customer-status', 'customer_ops', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'customer-status ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'atendimento_clienteNeed', 'customer-statusState', 'experienceGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie customer-status', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar customer-status para atendimento_cliente em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0121 = HumanControlRule(
    rule_id='customer_ops__atendimento_cliente__handoffs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa handoffs de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que handoffs sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('handoffs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'customer_ops', 'handoffs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'handoffs', 'customer_ops', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'handoffs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'atendimento_clienteNeed', 'handoffsState', 'experienceGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie handoffs', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar handoffs para atendimento_cliente em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0122 = HumanControlRule(
    rule_id='customer_ops__cliente_externo__tickets',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='cliente_externo',
    title='Cliente externo usa tickets de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que tickets sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tickets', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'customer_ops', 'tickets', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'tickets', 'customer_ops', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'tickets ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'cliente_externoNeed', 'ticketsState', 'experienceGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie tickets', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tickets para cliente_externo em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0123 = HumanControlRule(
    rule_id='customer_ops__cliente_externo__incidents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='cliente_externo',
    title='Cliente externo usa incidents de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que incidents sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'customer_ops', 'incidents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'incidents', 'customer_ops', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'cliente_externoNeed', 'incidentsState', 'experienceGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar incidents para cliente_externo em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0124 = HumanControlRule(
    rule_id='customer_ops__cliente_externo__diagnostics',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='cliente_externo',
    title='Cliente externo usa diagnostics de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que diagnostics sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('diagnostics', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'customer_ops', 'diagnostics', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'diagnostics', 'customer_ops', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'diagnostics ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'cliente_externoNeed', 'diagnosticsState', 'experienceGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie diagnostics', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar diagnostics para cliente_externo em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0125 = HumanControlRule(
    rule_id='customer_ops__cliente_externo__customer-status',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='cliente_externo',
    title='Cliente externo usa customer-status de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que customer-status sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('customer-status', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'customer_ops', 'customer-status', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'customer-status', 'customer_ops', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'customer-status ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'cliente_externoNeed', 'customer-statusState', 'experienceGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie customer-status', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar customer-status para cliente_externo em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0126 = HumanControlRule(
    rule_id='customer_ops__cliente_externo__handoffs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='customer_ops',
    profile_id='cliente_externo',
    title='Cliente externo usa handoffs de Customer Ops Platform com verdade rastreavel',
    purpose='Exigir que handoffs sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('handoffs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'customer_ops', 'handoffs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'handoffs', 'customer_ops', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'handoffs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'customer_opsStatus', 'cliente_externoNeed', 'handoffsState', 'experienceGate'),
    validation_steps=('confirmar que customer_ops expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie handoffs', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar handoffs para cliente_externo em customer_ops',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0127 = HumanControlRule(
    rule_id='customer_ops__depends__business',
    scope=RuleScope.DEPENDENCY,
    platform_id='customer_ops',
    profile_id='gestor_operacional',
    title='Customer Ops Platform declara dependencia controlada com business',
    purpose='Evitar integracao direta invisivel entre customer_ops e business; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('customer_ops', 'business', 'tudo-para-ia-business-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-customer-ops-platform', 'tudo-para-ia-business-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia customer_ops->business no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia customer_ops->business no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0128 = HumanControlRule(
    rule_id='customer_ops__depends__identity',
    scope=RuleScope.DEPENDENCY,
    platform_id='customer_ops',
    profile_id='gestor_operacional',
    title='Customer Ops Platform declara dependencia controlada com identity',
    purpose='Evitar integracao direta invisivel entre customer_ops e identity; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('customer_ops', 'identity', 'tudo-para-ia-identity-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-customer-ops-platform', 'tudo-para-ia-identity-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia customer_ops->identity no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia customer_ops->identity no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0129 = HumanControlRule(
    rule_id='customer_ops__depends__docs',
    scope=RuleScope.DEPENDENCY,
    platform_id='customer_ops',
    profile_id='gestor_operacional',
    title='Customer Ops Platform declara dependencia controlada com docs',
    purpose='Evitar integracao direta invisivel entre customer_ops e docs; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='customer_ops via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('customer_ops', 'docs', 'tudo-para-ia-docs-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-customer-ops-platform', 'tudo-para-ia-docs-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia customer_ops->docs no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia customer_ops->docs no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0130 = HumanControlRule(
    rule_id='docs__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='administrador_empresa',
    title='Docs Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'administrador_empresa', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'administrador_empresaNeed', 'canonical-docsState', 'governanceGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para administrador_empresa',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0131 = HumanControlRule(
    rule_id='docs__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='ceo',
    title='Docs Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'ceo', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'ceoNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para ceo',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0132 = HumanControlRule(
    rule_id='docs__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='gestor_operacional',
    title='Docs Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'gestor_operacional', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'gestor_operacionalNeed', 'canonical-docsState', 'governanceGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para gestor_operacional',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0133 = HumanControlRule(
    rule_id='docs__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='suporte',
    title='Docs Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'suporte', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'suporteNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para suporte',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0134 = HumanControlRule(
    rule_id='docs__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='atendimento_cliente',
    title='Docs Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'atendimento_cliente', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'atendimento_clienteNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para atendimento_cliente',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0135 = HumanControlRule(
    rule_id='docs__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='financeiro',
    title='Docs Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'financeiro', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'financeiroNeed', 'canonical-docsState', 'governanceGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para financeiro',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0136 = HumanControlRule(
    rule_id='docs__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='contador',
    title='Docs Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'contador', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'contadorNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para contador',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0137 = HumanControlRule(
    rule_id='docs__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='juridico',
    title='Docs Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'juridico', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'juridicoNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para juridico',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0138 = HumanControlRule(
    rule_id='docs__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='secretaria',
    title='Docs Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'secretaria', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'secretariaNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para secretaria',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0139 = HumanControlRule(
    rule_id='docs__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='tecnico',
    title='Docs Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'tecnico', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'tecnicoNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para tecnico',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0140 = HumanControlRule(
    rule_id='docs__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='usuario_final',
    title='Docs Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'usuario_final', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'usuario_finalNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para usuario_final',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0141 = HumanControlRule(
    rule_id='docs__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='cliente_externo',
    title='Docs Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'cliente_externo', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'cliente_externoNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para cliente_externo',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0142 = HumanControlRule(
    rule_id='docs__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='docs',
    profile_id='planejamento_estrategico',
    title='Docs Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Docs Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'contracts', 'proofs'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('docs', 'tudo-para-ia-docs-plataform', 'planejamento_estrategico', 'strategy', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'planejamento_estrategicoNeed', 'canonical-docsState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de docs para planejamento_estrategico',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0143 = HumanControlRule(
    rule_id='docs__surface__canonical-docs',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='docs',
    profile_id='todos',
    title='Superficie canonical-docs de Docs Platform passa pelo MCP',
    purpose='Formalizar que a superficie canonical-docs de Docs Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('canonical-docs', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('canonical-docs', 'tudo-para-ia-docs-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'canonical-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'todosNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover canonical-docs de docs a painel MCP same-source',
    priority='alta',
    generated_from='platform_surface_catalog',
)

RULE_0144 = HumanControlRule(
    rule_id='docs__surface__contracts',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='docs',
    profile_id='todos',
    title='Superficie contracts de Docs Platform passa pelo MCP',
    purpose='Formalizar que a superficie contracts de Docs Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('contracts', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('contracts', 'tudo-para-ia-docs-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'todosNeed', 'contractsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover contracts de docs a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0145 = HumanControlRule(
    rule_id='docs__surface__proofs',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='docs',
    profile_id='todos',
    title='Superficie proofs de Docs Platform passa pelo MCP',
    purpose='Formalizar que a superficie proofs de Docs Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('proofs', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('proofs', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('proofs', 'tudo-para-ia-docs-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'proofs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'todosNeed', 'proofsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie proofs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover proofs de docs a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0146 = HumanControlRule(
    rule_id='docs__surface__help',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='docs',
    profile_id='todos',
    title='Superficie help de Docs Platform passa pelo MCP',
    purpose='Formalizar que a superficie help de Docs Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('help', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('help', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('help', 'tudo-para-ia-docs-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'help ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'todosNeed', 'helpState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie help', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover help de docs a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0147 = HumanControlRule(
    rule_id='docs__surface__runbooks',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='docs',
    profile_id='todos',
    title='Superficie runbooks de Docs Platform passa pelo MCP',
    purpose='Formalizar que a superficie runbooks de Docs Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('runbooks', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('runbooks', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('runbooks', 'tudo-para-ia-docs-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'runbooks ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'todosNeed', 'runbooksState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie runbooks', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover runbooks de docs a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0148 = HumanControlRule(
    rule_id='docs__ceo__canonical-docs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='ceo',
    title='CEO usa canonical-docs de Docs Platform com verdade rastreavel',
    purpose='Exigir que canonical-docs sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'canonical-docs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'canonical-docs', 'docs', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'canonical-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'ceoNeed', 'canonical-docsState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar canonical-docs para ceo em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0149 = HumanControlRule(
    rule_id='docs__ceo__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='ceo',
    title='CEO usa contracts de Docs Platform com verdade rastreavel',
    purpose='Exigir que contracts sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'contracts', 'docs', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'ceoNeed', 'contractsState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para ceo em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0150 = HumanControlRule(
    rule_id='docs__ceo__proofs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='ceo',
    title='CEO usa proofs de Docs Platform com verdade rastreavel',
    purpose='Exigir que proofs sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('proofs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'proofs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'proofs', 'docs', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'proofs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'ceoNeed', 'proofsState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie proofs', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar proofs para ceo em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0151 = HumanControlRule(
    rule_id='docs__ceo__help',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='ceo',
    title='CEO usa help de Docs Platform com verdade rastreavel',
    purpose='Exigir que help sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('help', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'help', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'help', 'docs', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'help ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'ceoNeed', 'helpState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie help', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar help para ceo em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0152 = HumanControlRule(
    rule_id='docs__ceo__runbooks',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='ceo',
    title='CEO usa runbooks de Docs Platform com verdade rastreavel',
    purpose='Exigir que runbooks sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('runbooks', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'runbooks', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'runbooks', 'docs', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'runbooks ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'ceoNeed', 'runbooksState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie runbooks', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar runbooks para ceo em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0153 = HumanControlRule(
    rule_id='docs__suporte__canonical-docs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='suporte',
    title='Equipe de suporte usa canonical-docs de Docs Platform com verdade rastreavel',
    purpose='Exigir que canonical-docs sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'canonical-docs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'canonical-docs', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'canonical-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'suporteNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar canonical-docs para suporte em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0154 = HumanControlRule(
    rule_id='docs__suporte__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='suporte',
    title='Equipe de suporte usa contracts de Docs Platform com verdade rastreavel',
    purpose='Exigir que contracts sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'contracts', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'suporteNeed', 'contractsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para suporte em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0155 = HumanControlRule(
    rule_id='docs__suporte__proofs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='suporte',
    title='Equipe de suporte usa proofs de Docs Platform com verdade rastreavel',
    purpose='Exigir que proofs sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('proofs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'proofs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'proofs', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'proofs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'suporteNeed', 'proofsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie proofs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar proofs para suporte em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0156 = HumanControlRule(
    rule_id='docs__suporte__help',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='suporte',
    title='Equipe de suporte usa help de Docs Platform com verdade rastreavel',
    purpose='Exigir que help sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('help', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'help', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'help', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'help ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'suporteNeed', 'helpState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie help', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar help para suporte em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0157 = HumanControlRule(
    rule_id='docs__suporte__runbooks',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='suporte',
    title='Equipe de suporte usa runbooks de Docs Platform com verdade rastreavel',
    purpose='Exigir que runbooks sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('runbooks', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'runbooks', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'runbooks', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'runbooks ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'suporteNeed', 'runbooksState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie runbooks', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar runbooks para suporte em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0158 = HumanControlRule(
    rule_id='docs__atendimento_cliente__canonical-docs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa canonical-docs de Docs Platform com verdade rastreavel',
    purpose='Exigir que canonical-docs sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'canonical-docs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'canonical-docs', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'canonical-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'atendimento_clienteNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar canonical-docs para atendimento_cliente em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0159 = HumanControlRule(
    rule_id='docs__atendimento_cliente__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa contracts de Docs Platform com verdade rastreavel',
    purpose='Exigir que contracts sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'contracts', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'atendimento_clienteNeed', 'contractsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para atendimento_cliente em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0160 = HumanControlRule(
    rule_id='docs__atendimento_cliente__proofs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa proofs de Docs Platform com verdade rastreavel',
    purpose='Exigir que proofs sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('proofs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'proofs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'proofs', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'proofs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'atendimento_clienteNeed', 'proofsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie proofs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar proofs para atendimento_cliente em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0161 = HumanControlRule(
    rule_id='docs__atendimento_cliente__help',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa help de Docs Platform com verdade rastreavel',
    purpose='Exigir que help sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('help', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'help', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'help', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'help ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'atendimento_clienteNeed', 'helpState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie help', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar help para atendimento_cliente em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0162 = HumanControlRule(
    rule_id='docs__atendimento_cliente__runbooks',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa runbooks de Docs Platform com verdade rastreavel',
    purpose='Exigir que runbooks sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('runbooks', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'runbooks', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'runbooks', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'runbooks ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'atendimento_clienteNeed', 'runbooksState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie runbooks', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar runbooks para atendimento_cliente em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0163 = HumanControlRule(
    rule_id='docs__juridico__canonical-docs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='juridico',
    title='Juridico usa canonical-docs de Docs Platform com verdade rastreavel',
    purpose='Exigir que canonical-docs sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'canonical-docs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'canonical-docs', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'canonical-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'juridicoNeed', 'canonical-docsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar canonical-docs para juridico em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0164 = HumanControlRule(
    rule_id='docs__juridico__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='juridico',
    title='Juridico usa contracts de Docs Platform com verdade rastreavel',
    purpose='Exigir que contracts sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'contracts', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'juridicoNeed', 'contractsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para juridico em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0165 = HumanControlRule(
    rule_id='docs__juridico__proofs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='juridico',
    title='Juridico usa proofs de Docs Platform com verdade rastreavel',
    purpose='Exigir que proofs sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('proofs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'proofs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'proofs', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'proofs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'juridicoNeed', 'proofsState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie proofs', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar proofs para juridico em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0166 = HumanControlRule(
    rule_id='docs__juridico__help',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='juridico',
    title='Juridico usa help de Docs Platform com verdade rastreavel',
    purpose='Exigir que help sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('help', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'help', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'help', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'help ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'juridicoNeed', 'helpState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie help', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar help para juridico em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0167 = HumanControlRule(
    rule_id='docs__juridico__runbooks',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='juridico',
    title='Juridico usa runbooks de Docs Platform com verdade rastreavel',
    purpose='Exigir que runbooks sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('runbooks', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'docs', 'runbooks', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'runbooks', 'docs', 'documentation', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'runbooks ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'juridicoNeed', 'runbooksState', 'documentationGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie runbooks', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar runbooks para juridico em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0168 = HumanControlRule(
    rule_id='docs__planejamento_estrategico__canonical-docs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa canonical-docs de Docs Platform com verdade rastreavel',
    purpose='Exigir que canonical-docs sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('canonical-docs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'canonical-docs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'canonical-docs', 'docs', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'canonical-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'planejamento_estrategicoNeed', 'canonical-docsState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie canonical-docs', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar canonical-docs para planejamento_estrategico em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0169 = HumanControlRule(
    rule_id='docs__planejamento_estrategico__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa contracts de Docs Platform com verdade rastreavel',
    purpose='Exigir que contracts sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'contracts', 'docs', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'planejamento_estrategicoNeed', 'contractsState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para planejamento_estrategico em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0170 = HumanControlRule(
    rule_id='docs__planejamento_estrategico__proofs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa proofs de Docs Platform com verdade rastreavel',
    purpose='Exigir que proofs sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('proofs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'proofs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'proofs', 'docs', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'proofs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'planejamento_estrategicoNeed', 'proofsState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie proofs', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar proofs para planejamento_estrategico em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0171 = HumanControlRule(
    rule_id='docs__planejamento_estrategico__help',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa help de Docs Platform com verdade rastreavel',
    purpose='Exigir que help sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('help', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'help', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'help', 'docs', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'help ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'planejamento_estrategicoNeed', 'helpState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie help', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar help para planejamento_estrategico em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0172 = HumanControlRule(
    rule_id='docs__planejamento_estrategico__runbooks',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='docs',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa runbooks de Docs Platform com verdade rastreavel',
    purpose='Exigir que runbooks sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('runbooks', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'docs', 'runbooks', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'runbooks', 'docs', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente', 'runbooks ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'docsStatus', 'planejamento_estrategicoNeed', 'runbooksState', 'strategyGate'),
    validation_steps=('confirmar que docs expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie runbooks', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar runbooks para planejamento_estrategico em docs',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0173 = HumanControlRule(
    rule_id='docs__depends__mcps',
    scope=RuleScope.DEPENDENCY,
    platform_id='docs',
    profile_id='gestor_operacional',
    title='Docs Platform declara dependencia controlada com mcps',
    purpose='Evitar integracao direta invisivel entre docs e mcps; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('docs', 'mcps', 'tudo-para-ia-mcps-internos-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-docs-plataform', 'tudo-para-ia-mcps-internos-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia docs->mcps no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia docs->mcps no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0174 = HumanControlRule(
    rule_id='docs__depends__ui',
    scope=RuleScope.DEPENDENCY,
    platform_id='docs',
    profile_id='gestor_operacional',
    title='Docs Platform declara dependencia controlada com ui',
    purpose='Evitar integracao direta invisivel entre docs e ui; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('docs', 'ui', 'tudo-para-ia-ui-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-docs-plataform', 'tudo-para-ia-ui-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia docs->ui no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia docs->ui no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0175 = HumanControlRule(
    rule_id='docs__depends__compliance',
    scope=RuleScope.DEPENDENCY,
    platform_id='docs',
    profile_id='gestor_operacional',
    title='Docs Platform declara dependencia controlada com compliance',
    purpose='Evitar integracao direta invisivel entre docs e compliance; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='docs via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('docs', 'compliance', 'tudo-para-ia-compliance-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-docs-plataform', 'tudo-para-ia-compliance-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'responseReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia docs->compliance no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia docs->compliance no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0176 = HumanControlRule(
    rule_id='finance__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='administrador_empresa',
    title='Finance Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'administrador_empresa', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'administrador_empresaNeed', 'invoicesState', 'observabilityGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0177 = HumanControlRule(
    rule_id='finance__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='ceo',
    title='Finance Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'ceo', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'ceoNeed', 'invoicesState', 'observabilityGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0178 = HumanControlRule(
    rule_id='finance__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='gestor_operacional',
    title='Finance Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'gestor_operacional', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'gestor_operacionalNeed', 'invoicesState', 'observabilityGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0179 = HumanControlRule(
    rule_id='finance__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='suporte',
    title='Finance Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'suporte', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'suporteNeed', 'invoicesState', 'observabilityGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0180 = HumanControlRule(
    rule_id='finance__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='atendimento_cliente',
    title='Finance Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'atendimento_cliente', 'finance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'atendimento_clienteNeed', 'invoicesState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0181 = HumanControlRule(
    rule_id='finance__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='financeiro',
    title='Finance Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'financeiro', 'finance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'financeiroNeed', 'invoicesState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0182 = HumanControlRule(
    rule_id='finance__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='contador',
    title='Finance Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'contador', 'finance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'contadorNeed', 'invoicesState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0183 = HumanControlRule(
    rule_id='finance__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='juridico',
    title='Finance Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'juridico', 'finance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'juridicoNeed', 'invoicesState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0184 = HumanControlRule(
    rule_id='finance__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='secretaria',
    title='Finance Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'secretaria', 'finance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'secretariaNeed', 'invoicesState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0185 = HumanControlRule(
    rule_id='finance__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='tecnico',
    title='Finance Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'tecnico', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'tecnicoNeed', 'invoicesState', 'observabilityGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0186 = HumanControlRule(
    rule_id='finance__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='usuario_final',
    title='Finance Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'usuario_final', 'finance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'usuario_finalNeed', 'invoicesState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0187 = HumanControlRule(
    rule_id='finance__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='cliente_externo',
    title='Finance Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'cliente_externo', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'cliente_externoNeed', 'invoicesState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0188 = HumanControlRule(
    rule_id='finance__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='finance',
    profile_id='planejamento_estrategico',
    title='Finance Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Finance Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'usage', 'cost'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'finance', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('finance', 'tudo-para-ia-finance-platform', 'planejamento_estrategico', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'planejamento_estrategicoNeed', 'invoicesState', 'observabilityGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de finance para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0189 = HumanControlRule(
    rule_id='finance__surface__invoices',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='finance',
    profile_id='todos',
    title='Superficie invoices de Finance Platform passa pelo MCP',
    purpose='Formalizar que a superficie invoices de Finance Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('invoices', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('invoices', 'tudo-para-ia-finance-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'invoices ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'todosNeed', 'invoicesState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover invoices de finance a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0190 = HumanControlRule(
    rule_id='finance__surface__usage',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='finance',
    profile_id='todos',
    title='Superficie usage de Finance Platform passa pelo MCP',
    purpose='Formalizar que a superficie usage de Finance Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('usage', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('usage', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('usage', 'tudo-para-ia-finance-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'usage ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'todosNeed', 'usageState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie usage', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover usage de finance a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0191 = HumanControlRule(
    rule_id='finance__surface__cost',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='finance',
    profile_id='todos',
    title='Superficie cost de Finance Platform passa pelo MCP',
    purpose='Formalizar que a superficie cost de Finance Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('cost', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('cost', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('cost', 'tudo-para-ia-finance-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'cost ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'todosNeed', 'costState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie cost', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover cost de finance a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0192 = HumanControlRule(
    rule_id='finance__surface__reconciliation',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='finance',
    profile_id='todos',
    title='Superficie reconciliation de Finance Platform passa pelo MCP',
    purpose='Formalizar que a superficie reconciliation de Finance Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('reconciliation', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('reconciliation', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('reconciliation', 'tudo-para-ia-finance-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'reconciliation ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'todosNeed', 'reconciliationState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie reconciliation', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover reconciliation de finance a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0193 = HumanControlRule(
    rule_id='finance__surface__quota',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='finance',
    profile_id='todos',
    title='Superficie quota de Finance Platform passa pelo MCP',
    purpose='Formalizar que a superficie quota de Finance Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('quota', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('quota', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('quota', 'tudo-para-ia-finance-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'quota ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'todosNeed', 'quotaState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie quota', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover quota de finance a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0194 = HumanControlRule(
    rule_id='finance__administrador_empresa__invoices',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa invoices de Finance Platform com verdade rastreavel',
    purpose='Exigir que invoices sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'invoices', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'invoices', 'finance', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'invoices ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'administrador_empresaNeed', 'invoicesState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar invoices para administrador_empresa em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0195 = HumanControlRule(
    rule_id='finance__administrador_empresa__usage',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa usage de Finance Platform com verdade rastreavel',
    purpose='Exigir que usage sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('usage', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'usage', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'usage', 'finance', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'usage ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'administrador_empresaNeed', 'usageState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie usage', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar usage para administrador_empresa em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0196 = HumanControlRule(
    rule_id='finance__administrador_empresa__cost',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa cost de Finance Platform com verdade rastreavel',
    purpose='Exigir que cost sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('cost', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'cost', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'cost', 'finance', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'cost ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'administrador_empresaNeed', 'costState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie cost', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar cost para administrador_empresa em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0197 = HumanControlRule(
    rule_id='finance__administrador_empresa__reconciliation',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa reconciliation de Finance Platform com verdade rastreavel',
    purpose='Exigir que reconciliation sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('reconciliation', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'reconciliation', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'reconciliation', 'finance', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'reconciliation ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'administrador_empresaNeed', 'reconciliationState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie reconciliation', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar reconciliation para administrador_empresa em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0198 = HumanControlRule(
    rule_id='finance__administrador_empresa__quota',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa quota de Finance Platform com verdade rastreavel',
    purpose='Exigir que quota sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('quota', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'quota', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'quota', 'finance', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'quota ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'administrador_empresaNeed', 'quotaState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie quota', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar quota para administrador_empresa em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0199 = HumanControlRule(
    rule_id='finance__ceo__invoices',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='ceo',
    title='CEO usa invoices de Finance Platform com verdade rastreavel',
    purpose='Exigir que invoices sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'invoices', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'invoices', 'finance', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'invoices ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'ceoNeed', 'invoicesState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar invoices para ceo em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0200 = HumanControlRule(
    rule_id='finance__ceo__usage',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='ceo',
    title='CEO usa usage de Finance Platform com verdade rastreavel',
    purpose='Exigir que usage sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('usage', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'usage', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'usage', 'finance', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'usage ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'ceoNeed', 'usageState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie usage', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar usage para ceo em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0201 = HumanControlRule(
    rule_id='finance__ceo__cost',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='ceo',
    title='CEO usa cost de Finance Platform com verdade rastreavel',
    purpose='Exigir que cost sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('cost', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'cost', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'cost', 'finance', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'cost ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'ceoNeed', 'costState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie cost', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar cost para ceo em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0202 = HumanControlRule(
    rule_id='finance__ceo__reconciliation',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='ceo',
    title='CEO usa reconciliation de Finance Platform com verdade rastreavel',
    purpose='Exigir que reconciliation sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('reconciliation', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'reconciliation', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'reconciliation', 'finance', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'reconciliation ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'ceoNeed', 'reconciliationState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie reconciliation', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar reconciliation para ceo em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0203 = HumanControlRule(
    rule_id='finance__ceo__quota',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='ceo',
    title='CEO usa quota de Finance Platform com verdade rastreavel',
    purpose='Exigir que quota sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('quota', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'finance', 'quota', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'quota', 'finance', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'quota ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'ceoNeed', 'quotaState', 'commercialGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie quota', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar quota para ceo em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0204 = HumanControlRule(
    rule_id='finance__financeiro__invoices',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='financeiro',
    title='Financeiro usa invoices de Finance Platform com verdade rastreavel',
    purpose='Exigir que invoices sirva Financeiro com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'invoices', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('financeiro', 'invoices', 'finance', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'invoices ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'financeiroNeed', 'invoicesState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar invoices para financeiro em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0205 = HumanControlRule(
    rule_id='finance__financeiro__usage',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='financeiro',
    title='Financeiro usa usage de Finance Platform com verdade rastreavel',
    purpose='Exigir que usage sirva Financeiro com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('usage', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'usage', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('financeiro', 'usage', 'finance', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'usage ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'financeiroNeed', 'usageState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie usage', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar usage para financeiro em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0206 = HumanControlRule(
    rule_id='finance__financeiro__cost',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='financeiro',
    title='Financeiro usa cost de Finance Platform com verdade rastreavel',
    purpose='Exigir que cost sirva Financeiro com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('cost', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'cost', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('financeiro', 'cost', 'finance', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'cost ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'financeiroNeed', 'costState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie cost', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar cost para financeiro em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0207 = HumanControlRule(
    rule_id='finance__financeiro__reconciliation',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='financeiro',
    title='Financeiro usa reconciliation de Finance Platform com verdade rastreavel',
    purpose='Exigir que reconciliation sirva Financeiro com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('reconciliation', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'reconciliation', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('financeiro', 'reconciliation', 'finance', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'reconciliation ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'financeiroNeed', 'reconciliationState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie reconciliation', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar reconciliation para financeiro em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0208 = HumanControlRule(
    rule_id='finance__financeiro__quota',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='financeiro',
    title='Financeiro usa quota de Finance Platform com verdade rastreavel',
    purpose='Exigir que quota sirva Financeiro com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('quota', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'quota', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('financeiro', 'quota', 'finance', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'quota ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'financeiroNeed', 'quotaState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie quota', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar quota para financeiro em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0209 = HumanControlRule(
    rule_id='finance__contador__invoices',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='contador',
    title='Contador usa invoices de Finance Platform com verdade rastreavel',
    purpose='Exigir que invoices sirva Contador com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('invoices', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'invoices', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('contador', 'invoices', 'finance', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'invoices ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'contadorNeed', 'invoicesState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie invoices', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar invoices para contador em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0210 = HumanControlRule(
    rule_id='finance__contador__usage',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='contador',
    title='Contador usa usage de Finance Platform com verdade rastreavel',
    purpose='Exigir que usage sirva Contador com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('usage', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'usage', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('contador', 'usage', 'finance', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'usage ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'contadorNeed', 'usageState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie usage', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar usage para contador em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0211 = HumanControlRule(
    rule_id='finance__contador__cost',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='contador',
    title='Contador usa cost de Finance Platform com verdade rastreavel',
    purpose='Exigir que cost sirva Contador com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('cost', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'cost', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('contador', 'cost', 'finance', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'cost ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'contadorNeed', 'costState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie cost', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar cost para contador em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0212 = HumanControlRule(
    rule_id='finance__contador__reconciliation',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='contador',
    title='Contador usa reconciliation de Finance Platform com verdade rastreavel',
    purpose='Exigir que reconciliation sirva Contador com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('reconciliation', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'reconciliation', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('contador', 'reconciliation', 'finance', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'reconciliation ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'contadorNeed', 'reconciliationState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie reconciliation', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar reconciliation para contador em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0213 = HumanControlRule(
    rule_id='finance__contador__quota',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='finance',
    profile_id='contador',
    title='Contador usa quota de Finance Platform com verdade rastreavel',
    purpose='Exigir que quota sirva Contador com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('quota', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('invoice', 'usage', 'quota', 'billing', 'reconciliation', 'finance', 'quota', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('contador', 'quota', 'finance', 'finance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'quota ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'financeStatus', 'contadorNeed', 'quotaState', 'financeGate'),
    validation_steps=('confirmar que finance expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie quota', 'registrar evidencia sanitizada da categoria finance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar quota para contador em finance',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0214 = HumanControlRule(
    rule_id='finance__depends__business',
    scope=RuleScope.DEPENDENCY,
    platform_id='finance',
    profile_id='gestor_operacional',
    title='Finance Platform declara dependencia controlada com business',
    purpose='Evitar integracao direta invisivel entre finance e business; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('finance', 'business', 'tudo-para-ia-business-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-finance-platform', 'tudo-para-ia-business-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia finance->business no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia finance->business no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0215 = HumanControlRule(
    rule_id='finance__depends__identity',
    scope=RuleScope.DEPENDENCY,
    platform_id='finance',
    profile_id='gestor_operacional',
    title='Finance Platform declara dependencia controlada com identity',
    purpose='Evitar integracao direta invisivel entre finance e identity; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='finance via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('finance', 'identity', 'tudo-para-ia-identity-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-finance-platform', 'tudo-para-ia-identity-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia finance->identity no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia finance->identity no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0216 = HumanControlRule(
    rule_id='gettys__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='administrador_empresa',
    title='Gettys Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'administrador_empresa', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'administrador_empresaNeed', 'gettys-overviewState', 'observabilityGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0217 = HumanControlRule(
    rule_id='gettys__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='ceo',
    title='Gettys Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'ceo', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'ceoNeed', 'gettys-overviewState', 'observabilityGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0218 = HumanControlRule(
    rule_id='gettys__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='gestor_operacional',
    title='Gettys Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'gestor_operacional', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'gestor_operacionalNeed', 'gettys-overviewState', 'observabilityGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0219 = HumanControlRule(
    rule_id='gettys__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='suporte',
    title='Gettys Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'suporte', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'suporteNeed', 'gettys-overviewState', 'observabilityGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0220 = HumanControlRule(
    rule_id='gettys__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='atendimento_cliente',
    title='Gettys Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'atendimento_cliente', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'atendimento_clienteNeed', 'gettys-overviewState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0221 = HumanControlRule(
    rule_id='gettys__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='financeiro',
    title='Gettys Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'financeiro', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'financeiroNeed', 'gettys-overviewState', 'observabilityGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0222 = HumanControlRule(
    rule_id='gettys__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='contador',
    title='Gettys Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'contador', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'contadorNeed', 'gettys-overviewState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0223 = HumanControlRule(
    rule_id='gettys__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='juridico',
    title='Gettys Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'juridico', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'juridicoNeed', 'gettys-overviewState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0224 = HumanControlRule(
    rule_id='gettys__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='secretaria',
    title='Gettys Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'secretaria', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'secretariaNeed', 'gettys-overviewState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0225 = HumanControlRule(
    rule_id='gettys__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='tecnico',
    title='Gettys Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'tecnico', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'tecnicoNeed', 'gettys-overviewState', 'observabilityGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0226 = HumanControlRule(
    rule_id='gettys__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='usuario_final',
    title='Gettys Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'usuario_final', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'usuario_finalNeed', 'gettys-overviewState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0227 = HumanControlRule(
    rule_id='gettys__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='cliente_externo',
    title='Gettys Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'cliente_externo', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'cliente_externoNeed', 'gettys-overviewState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0228 = HumanControlRule(
    rule_id='gettys__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='gettys',
    profile_id='planejamento_estrategico',
    title='Gettys Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Gettys Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin-screen', 'health'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'gettys', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('gettys', 'tudo-para-ia-gettys-platform', 'planejamento_estrategico', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'planejamento_estrategicoNeed', 'gettys-overviewState', 'observabilityGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de gettys para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0229 = HumanControlRule(
    rule_id='gettys__surface__gettys-overview',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='gettys',
    profile_id='todos',
    title='Superficie gettys-overview de Gettys Platform passa pelo MCP',
    purpose='Formalizar que a superficie gettys-overview de Gettys Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('gettys-overview', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('gettys-overview', 'tudo-para-ia-gettys-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'gettys-overview ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'todosNeed', 'gettys-overviewState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover gettys-overview de gettys a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0230 = HumanControlRule(
    rule_id='gettys__surface__admin-screen',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='gettys',
    profile_id='todos',
    title='Superficie admin-screen de Gettys Platform passa pelo MCP',
    purpose='Formalizar que a superficie admin-screen de Gettys Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin-screen', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('admin-screen', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('admin-screen', 'tudo-para-ia-gettys-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'admin-screen ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'todosNeed', 'admin-screenState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie admin-screen', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover admin-screen de gettys a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0231 = HumanControlRule(
    rule_id='gettys__surface__health',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='gettys',
    profile_id='todos',
    title='Superficie health de Gettys Platform passa pelo MCP',
    purpose='Formalizar que a superficie health de Gettys Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('health', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('health', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('health', 'tudo-para-ia-gettys-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'health ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'todosNeed', 'healthState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie health', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover health de gettys a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0232 = HumanControlRule(
    rule_id='gettys__surface__product-readiness',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='gettys',
    profile_id='todos',
    title='Superficie product-readiness de Gettys Platform passa pelo MCP',
    purpose='Formalizar que a superficie product-readiness de Gettys Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('product-readiness', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('product-readiness', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('product-readiness', 'tudo-para-ia-gettys-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'product-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'todosNeed', 'product-readinessState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie product-readiness', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover product-readiness de gettys a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0233 = HumanControlRule(
    rule_id='gettys__gestor_operacional__gettys-overview',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='gestor_operacional',
    title='Gestor operacional usa gettys-overview de Gettys Platform com verdade rastreavel',
    purpose='Exigir que gettys-overview sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'gettys-overview', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'gettys-overview', 'gettys', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'gettys-overview ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'gestor_operacionalNeed', 'gettys-overviewState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar gettys-overview para gestor_operacional em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0234 = HumanControlRule(
    rule_id='gettys__gestor_operacional__admin-screen',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='gestor_operacional',
    title='Gestor operacional usa admin-screen de Gettys Platform com verdade rastreavel',
    purpose='Exigir que admin-screen sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin-screen', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'admin-screen', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'admin-screen', 'gettys', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'admin-screen ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'gestor_operacionalNeed', 'admin-screenState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie admin-screen', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar admin-screen para gestor_operacional em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0235 = HumanControlRule(
    rule_id='gettys__gestor_operacional__health',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='gestor_operacional',
    title='Gestor operacional usa health de Gettys Platform com verdade rastreavel',
    purpose='Exigir que health sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('health', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'health', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'health', 'gettys', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'health ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'gestor_operacionalNeed', 'healthState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie health', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar health para gestor_operacional em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0236 = HumanControlRule(
    rule_id='gettys__gestor_operacional__product-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='gestor_operacional',
    title='Gestor operacional usa product-readiness de Gettys Platform com verdade rastreavel',
    purpose='Exigir que product-readiness sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('product-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'product-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'product-readiness', 'gettys', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'product-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'gestor_operacionalNeed', 'product-readinessState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie product-readiness', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar product-readiness para gestor_operacional em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0237 = HumanControlRule(
    rule_id='gettys__suporte__gettys-overview',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='suporte',
    title='Equipe de suporte usa gettys-overview de Gettys Platform com verdade rastreavel',
    purpose='Exigir que gettys-overview sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'gettys-overview', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'gettys-overview', 'gettys', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'gettys-overview ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'suporteNeed', 'gettys-overviewState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar gettys-overview para suporte em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0238 = HumanControlRule(
    rule_id='gettys__suporte__admin-screen',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='suporte',
    title='Equipe de suporte usa admin-screen de Gettys Platform com verdade rastreavel',
    purpose='Exigir que admin-screen sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin-screen', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'admin-screen', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'admin-screen', 'gettys', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'admin-screen ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'suporteNeed', 'admin-screenState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie admin-screen', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar admin-screen para suporte em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0239 = HumanControlRule(
    rule_id='gettys__suporte__health',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='suporte',
    title='Equipe de suporte usa health de Gettys Platform com verdade rastreavel',
    purpose='Exigir que health sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('health', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'health', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'health', 'gettys', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'health ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'suporteNeed', 'healthState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie health', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar health para suporte em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0240 = HumanControlRule(
    rule_id='gettys__suporte__product-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='suporte',
    title='Equipe de suporte usa product-readiness de Gettys Platform com verdade rastreavel',
    purpose='Exigir que product-readiness sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('product-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'gettys', 'product-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'product-readiness', 'gettys', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'product-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'suporteNeed', 'product-readinessState', 'operationsGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie product-readiness', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar product-readiness para suporte em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0241 = HumanControlRule(
    rule_id='gettys__usuario_final__gettys-overview',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='usuario_final',
    title='Usuario final usa gettys-overview de Gettys Platform com verdade rastreavel',
    purpose='Exigir que gettys-overview sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'gettys-overview', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'gettys-overview', 'gettys', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'gettys-overview ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'usuario_finalNeed', 'gettys-overviewState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar gettys-overview para usuario_final em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0242 = HumanControlRule(
    rule_id='gettys__usuario_final__admin-screen',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='usuario_final',
    title='Usuario final usa admin-screen de Gettys Platform com verdade rastreavel',
    purpose='Exigir que admin-screen sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin-screen', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'admin-screen', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'admin-screen', 'gettys', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'admin-screen ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'usuario_finalNeed', 'admin-screenState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie admin-screen', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar admin-screen para usuario_final em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0243 = HumanControlRule(
    rule_id='gettys__usuario_final__health',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='usuario_final',
    title='Usuario final usa health de Gettys Platform com verdade rastreavel',
    purpose='Exigir que health sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('health', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'health', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'health', 'gettys', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'health ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'usuario_finalNeed', 'healthState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie health', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar health para usuario_final em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0244 = HumanControlRule(
    rule_id='gettys__usuario_final__product-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='usuario_final',
    title='Usuario final usa product-readiness de Gettys Platform com verdade rastreavel',
    purpose='Exigir que product-readiness sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('product-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'product-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'product-readiness', 'gettys', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'product-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'usuario_finalNeed', 'product-readinessState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie product-readiness', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar product-readiness para usuario_final em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0245 = HumanControlRule(
    rule_id='gettys__cliente_externo__gettys-overview',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='cliente_externo',
    title='Cliente externo usa gettys-overview de Gettys Platform com verdade rastreavel',
    purpose='Exigir que gettys-overview sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('gettys-overview', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'gettys-overview', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'gettys-overview', 'gettys', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'gettys-overview ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'cliente_externoNeed', 'gettys-overviewState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie gettys-overview', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar gettys-overview para cliente_externo em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0246 = HumanControlRule(
    rule_id='gettys__cliente_externo__admin-screen',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='cliente_externo',
    title='Cliente externo usa admin-screen de Gettys Platform com verdade rastreavel',
    purpose='Exigir que admin-screen sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin-screen', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'admin-screen', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'admin-screen', 'gettys', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'admin-screen ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'cliente_externoNeed', 'admin-screenState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie admin-screen', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar admin-screen para cliente_externo em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0247 = HumanControlRule(
    rule_id='gettys__cliente_externo__health',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='cliente_externo',
    title='Cliente externo usa health de Gettys Platform com verdade rastreavel',
    purpose='Exigir que health sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('health', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'health', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'health', 'gettys', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'health ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'cliente_externoNeed', 'healthState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie health', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar health para cliente_externo em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0248 = HumanControlRule(
    rule_id='gettys__cliente_externo__product-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='gettys',
    profile_id='cliente_externo',
    title='Cliente externo usa product-readiness de Gettys Platform com verdade rastreavel',
    purpose='Exigir que product-readiness sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('product-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'gettys', 'product-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'product-readiness', 'gettys', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'product-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'gettysStatus', 'cliente_externoNeed', 'product-readinessState', 'experienceGate'),
    validation_steps=('confirmar que gettys expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie product-readiness', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar product-readiness para cliente_externo em gettys',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0249 = HumanControlRule(
    rule_id='gettys__depends__ui',
    scope=RuleScope.DEPENDENCY,
    platform_id='gettys',
    profile_id='gestor_operacional',
    title='Gettys Platform declara dependencia controlada com ui',
    purpose='Evitar integracao direta invisivel entre gettys e ui; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('gettys', 'ui', 'tudo-para-ia-ui-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-gettys-platform', 'tudo-para-ia-ui-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia gettys->ui no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia gettys->ui no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0250 = HumanControlRule(
    rule_id='gettys__depends__mcps',
    scope=RuleScope.DEPENDENCY,
    platform_id='gettys',
    profile_id='gestor_operacional',
    title='Gettys Platform declara dependencia controlada com mcps',
    purpose='Evitar integracao direta invisivel entre gettys e mcps; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('gettys', 'mcps', 'tudo-para-ia-mcps-internos-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-gettys-platform', 'tudo-para-ia-mcps-internos-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia gettys->mcps no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia gettys->mcps no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0251 = HumanControlRule(
    rule_id='gettys__depends__business',
    scope=RuleScope.DEPENDENCY,
    platform_id='gettys',
    profile_id='gestor_operacional',
    title='Gettys Platform declara dependencia controlada com business',
    purpose='Evitar integracao direta invisivel entre gettys e business; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='gettys via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('gettys', 'business', 'tudo-para-ia-business-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-gettys-platform', 'tudo-para-ia-business-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia gettys->business no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia gettys->business no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0252 = HumanControlRule(
    rule_id='identity__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='administrador_empresa',
    title='Identity Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'administrador_empresa', 'administration', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'administrador_empresaNeed', 'rbacState', 'administrationGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0253 = HumanControlRule(
    rule_id='identity__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='ceo',
    title='Identity Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'ceo', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'ceoNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0254 = HumanControlRule(
    rule_id='identity__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='gestor_operacional',
    title='Identity Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'gestor_operacional', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'gestor_operacionalNeed', 'rbacState', 'governanceGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0255 = HumanControlRule(
    rule_id='identity__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='suporte',
    title='Identity Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'suporte', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'suporteNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0256 = HumanControlRule(
    rule_id='identity__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='atendimento_cliente',
    title='Identity Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'atendimento_cliente', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'atendimento_clienteNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0257 = HumanControlRule(
    rule_id='identity__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='financeiro',
    title='Identity Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'financeiro', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'financeiroNeed', 'rbacState', 'governanceGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0258 = HumanControlRule(
    rule_id='identity__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='contador',
    title='Identity Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'contador', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'contadorNeed', 'rbacState', 'governanceGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0259 = HumanControlRule(
    rule_id='identity__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='juridico',
    title='Identity Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'juridico', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'juridicoNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0260 = HumanControlRule(
    rule_id='identity__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='secretaria',
    title='Identity Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'secretaria', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'secretariaNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0261 = HumanControlRule(
    rule_id='identity__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='tecnico',
    title='Identity Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'tecnico', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'tecnicoNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0262 = HumanControlRule(
    rule_id='identity__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='usuario_final',
    title='Identity Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'usuario_final', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'usuario_finalNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0263 = HumanControlRule(
    rule_id='identity__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='cliente_externo',
    title='Identity Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'cliente_externo', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'cliente_externoNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0264 = HumanControlRule(
    rule_id='identity__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='identity',
    profile_id='planejamento_estrategico',
    title='Identity Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Identity Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'sessions', 'organizations'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'identity', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('identity', 'tudo-para-ia-identity-platform', 'planejamento_estrategico', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'planejamento_estrategicoNeed', 'rbacState', 'governanceGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de identity para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0265 = HumanControlRule(
    rule_id='identity__surface__rbac',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='identity',
    profile_id='todos',
    title='Superficie rbac de Identity Platform passa pelo MCP',
    purpose='Formalizar que a superficie rbac de Identity Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('rbac', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('rbac', 'tudo-para-ia-identity-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'rbac ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'todosNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover rbac de identity a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0266 = HumanControlRule(
    rule_id='identity__surface__sessions',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='identity',
    profile_id='todos',
    title='Superficie sessions de Identity Platform passa pelo MCP',
    purpose='Formalizar que a superficie sessions de Identity Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sessions', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('sessions', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('sessions', 'tudo-para-ia-identity-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sessions ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'todosNeed', 'sessionsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie sessions', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover sessions de identity a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0267 = HumanControlRule(
    rule_id='identity__surface__organizations',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='identity',
    profile_id='todos',
    title='Superficie organizations de Identity Platform passa pelo MCP',
    purpose='Formalizar que a superficie organizations de Identity Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('organizations', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('organizations', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('organizations', 'tudo-para-ia-identity-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'organizations ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'todosNeed', 'organizationsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie organizations', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover organizations de identity a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0268 = HumanControlRule(
    rule_id='identity__surface__incidents',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='identity',
    profile_id='todos',
    title='Superficie incidents de Identity Platform passa pelo MCP',
    purpose='Formalizar que a superficie incidents de Identity Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('incidents', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('incidents', 'tudo-para-ia-identity-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'todosNeed', 'incidentsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover incidents de identity a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0269 = HumanControlRule(
    rule_id='identity__surface__audit',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='identity',
    profile_id='todos',
    title='Superficie audit de Identity Platform passa pelo MCP',
    purpose='Formalizar que a superficie audit de Identity Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('audit', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('audit', 'tudo-para-ia-identity-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'todosNeed', 'auditState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover audit de identity a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0270 = HumanControlRule(
    rule_id='identity__surface__contracts',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='identity',
    profile_id='todos',
    title='Superficie contracts de Identity Platform passa pelo MCP',
    purpose='Formalizar que a superficie contracts de Identity Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('contracts', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('contracts', 'tudo-para-ia-identity-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'todosNeed', 'contractsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover contracts de identity a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0271 = HumanControlRule(
    rule_id='identity__administrador_empresa__rbac',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa rbac de Identity Platform com verdade rastreavel',
    purpose='Exigir que rbac sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'identity', 'rbac', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'rbac', 'identity', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'rbac ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'administrador_empresaNeed', 'rbacState', 'administrationGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar rbac para administrador_empresa em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0272 = HumanControlRule(
    rule_id='identity__administrador_empresa__sessions',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa sessions de Identity Platform com verdade rastreavel',
    purpose='Exigir que sessions sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sessions', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'identity', 'sessions', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'sessions', 'identity', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sessions ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'administrador_empresaNeed', 'sessionsState', 'administrationGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie sessions', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sessions para administrador_empresa em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0273 = HumanControlRule(
    rule_id='identity__administrador_empresa__organizations',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa organizations de Identity Platform com verdade rastreavel',
    purpose='Exigir que organizations sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('organizations', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'identity', 'organizations', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'organizations', 'identity', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'organizations ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'administrador_empresaNeed', 'organizationsState', 'administrationGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie organizations', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar organizations para administrador_empresa em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0274 = HumanControlRule(
    rule_id='identity__administrador_empresa__incidents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa incidents de Identity Platform com verdade rastreavel',
    purpose='Exigir que incidents sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'identity', 'incidents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'incidents', 'identity', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'administrador_empresaNeed', 'incidentsState', 'administrationGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar incidents para administrador_empresa em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0275 = HumanControlRule(
    rule_id='identity__administrador_empresa__audit',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa audit de Identity Platform com verdade rastreavel',
    purpose='Exigir que audit sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'identity', 'audit', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'audit', 'identity', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'administrador_empresaNeed', 'auditState', 'administrationGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar audit para administrador_empresa em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0276 = HumanControlRule(
    rule_id='identity__administrador_empresa__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa contracts de Identity Platform com verdade rastreavel',
    purpose='Exigir que contracts sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('admin', 'organization', 'tenant', 'permission', 'operator', 'identity', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'contracts', 'identity', 'administration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'administrador_empresaNeed', 'contractsState', 'administrationGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria administration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para administrador_empresa em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0277 = HumanControlRule(
    rule_id='identity__suporte__rbac',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='suporte',
    title='Equipe de suporte usa rbac de Identity Platform com verdade rastreavel',
    purpose='Exigir que rbac sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'rbac', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'rbac', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'rbac ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'suporteNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar rbac para suporte em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0278 = HumanControlRule(
    rule_id='identity__suporte__sessions',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='suporte',
    title='Equipe de suporte usa sessions de Identity Platform com verdade rastreavel',
    purpose='Exigir que sessions sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sessions', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sessions', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'sessions', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sessions ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'suporteNeed', 'sessionsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie sessions', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sessions para suporte em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0279 = HumanControlRule(
    rule_id='identity__suporte__organizations',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='suporte',
    title='Equipe de suporte usa organizations de Identity Platform com verdade rastreavel',
    purpose='Exigir que organizations sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('organizations', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'organizations', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'organizations', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'organizations ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'suporteNeed', 'organizationsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie organizations', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar organizations para suporte em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0280 = HumanControlRule(
    rule_id='identity__suporte__incidents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='suporte',
    title='Equipe de suporte usa incidents de Identity Platform com verdade rastreavel',
    purpose='Exigir que incidents sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'incidents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'incidents', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'suporteNeed', 'incidentsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar incidents para suporte em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0281 = HumanControlRule(
    rule_id='identity__suporte__audit',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='suporte',
    title='Equipe de suporte usa audit de Identity Platform com verdade rastreavel',
    purpose='Exigir que audit sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'audit', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'audit', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'suporteNeed', 'auditState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar audit para suporte em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0282 = HumanControlRule(
    rule_id='identity__suporte__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='suporte',
    title='Equipe de suporte usa contracts de Identity Platform com verdade rastreavel',
    purpose='Exigir que contracts sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'contracts', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'suporteNeed', 'contractsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para suporte em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0283 = HumanControlRule(
    rule_id='identity__juridico__rbac',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='juridico',
    title='Juridico usa rbac de Identity Platform com verdade rastreavel',
    purpose='Exigir que rbac sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'rbac', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'rbac', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'rbac ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'juridicoNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar rbac para juridico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0284 = HumanControlRule(
    rule_id='identity__juridico__sessions',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='juridico',
    title='Juridico usa sessions de Identity Platform com verdade rastreavel',
    purpose='Exigir que sessions sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sessions', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sessions', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'sessions', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sessions ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'juridicoNeed', 'sessionsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie sessions', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sessions para juridico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0285 = HumanControlRule(
    rule_id='identity__juridico__organizations',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='juridico',
    title='Juridico usa organizations de Identity Platform com verdade rastreavel',
    purpose='Exigir que organizations sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('organizations', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'organizations', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'organizations', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'organizations ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'juridicoNeed', 'organizationsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie organizations', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar organizations para juridico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0286 = HumanControlRule(
    rule_id='identity__juridico__incidents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='juridico',
    title='Juridico usa incidents de Identity Platform com verdade rastreavel',
    purpose='Exigir que incidents sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'incidents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'incidents', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'juridicoNeed', 'incidentsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar incidents para juridico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0287 = HumanControlRule(
    rule_id='identity__juridico__audit',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='juridico',
    title='Juridico usa audit de Identity Platform com verdade rastreavel',
    purpose='Exigir que audit sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'audit', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'audit', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'juridicoNeed', 'auditState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar audit para juridico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0288 = HumanControlRule(
    rule_id='identity__juridico__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='juridico',
    title='Juridico usa contracts de Identity Platform com verdade rastreavel',
    purpose='Exigir que contracts sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'contracts', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'juridicoNeed', 'contractsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para juridico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0289 = HumanControlRule(
    rule_id='identity__tecnico__rbac',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='tecnico',
    title='Tecnico usa rbac de Identity Platform com verdade rastreavel',
    purpose='Exigir que rbac sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'rbac', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'rbac', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'rbac ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'tecnicoNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar rbac para tecnico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0290 = HumanControlRule(
    rule_id='identity__tecnico__sessions',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='tecnico',
    title='Tecnico usa sessions de Identity Platform com verdade rastreavel',
    purpose='Exigir que sessions sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sessions', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sessions', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'sessions', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sessions ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'tecnicoNeed', 'sessionsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie sessions', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sessions para tecnico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0291 = HumanControlRule(
    rule_id='identity__tecnico__organizations',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='tecnico',
    title='Tecnico usa organizations de Identity Platform com verdade rastreavel',
    purpose='Exigir que organizations sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('organizations', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'organizations', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'organizations', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'organizations ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'tecnicoNeed', 'organizationsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie organizations', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar organizations para tecnico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0292 = HumanControlRule(
    rule_id='identity__tecnico__incidents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='tecnico',
    title='Tecnico usa incidents de Identity Platform com verdade rastreavel',
    purpose='Exigir que incidents sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'incidents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'incidents', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'tecnicoNeed', 'incidentsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar incidents para tecnico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0293 = HumanControlRule(
    rule_id='identity__tecnico__audit',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='tecnico',
    title='Tecnico usa audit de Identity Platform com verdade rastreavel',
    purpose='Exigir que audit sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'audit', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'audit', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'tecnicoNeed', 'auditState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar audit para tecnico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0294 = HumanControlRule(
    rule_id='identity__tecnico__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='tecnico',
    title='Tecnico usa contracts de Identity Platform com verdade rastreavel',
    purpose='Exigir que contracts sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'contracts', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'tecnicoNeed', 'contractsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para tecnico em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0295 = HumanControlRule(
    rule_id='identity__usuario_final__rbac',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='usuario_final',
    title='Usuario final usa rbac de Identity Platform com verdade rastreavel',
    purpose='Exigir que rbac sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('rbac', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'rbac', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'rbac', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'rbac ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'usuario_finalNeed', 'rbacState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie rbac', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar rbac para usuario_final em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0296 = HumanControlRule(
    rule_id='identity__usuario_final__sessions',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='usuario_final',
    title='Usuario final usa sessions de Identity Platform com verdade rastreavel',
    purpose='Exigir que sessions sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sessions', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'sessions', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'sessions', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sessions ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'usuario_finalNeed', 'sessionsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie sessions', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sessions para usuario_final em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0297 = HumanControlRule(
    rule_id='identity__usuario_final__organizations',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='usuario_final',
    title='Usuario final usa organizations de Identity Platform com verdade rastreavel',
    purpose='Exigir que organizations sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('organizations', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'organizations', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'organizations', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'organizations ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'usuario_finalNeed', 'organizationsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie organizations', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar organizations para usuario_final em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0298 = HumanControlRule(
    rule_id='identity__usuario_final__incidents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='usuario_final',
    title='Usuario final usa incidents de Identity Platform com verdade rastreavel',
    purpose='Exigir que incidents sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('incidents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'incidents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'incidents', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'incidents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'usuario_finalNeed', 'incidentsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie incidents', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar incidents para usuario_final em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0299 = HumanControlRule(
    rule_id='identity__usuario_final__audit',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='usuario_final',
    title='Usuario final usa audit de Identity Platform com verdade rastreavel',
    purpose='Exigir que audit sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('audit', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'audit', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'audit', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'audit ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'usuario_finalNeed', 'auditState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie audit', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar audit para usuario_final em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0300 = HumanControlRule(
    rule_id='identity__usuario_final__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='identity',
    profile_id='usuario_final',
    title='Usuario final usa contracts de Identity Platform com verdade rastreavel',
    purpose='Exigir que contracts sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'identity', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'contracts', 'identity', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'identityStatus', 'usuario_finalNeed', 'contractsState', 'securityGate'),
    validation_steps=('confirmar que identity expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para usuario_final em identity',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0301 = HumanControlRule(
    rule_id='identity__depends__business',
    scope=RuleScope.DEPENDENCY,
    platform_id='identity',
    profile_id='gestor_operacional',
    title='Identity Platform declara dependencia controlada com business',
    purpose='Evitar integracao direta invisivel entre identity e business; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('identity', 'business', 'tudo-para-ia-business-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-identity-platform', 'tudo-para-ia-business-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia identity->business no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia identity->business no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0302 = HumanControlRule(
    rule_id='identity__depends__integracoes',
    scope=RuleScope.DEPENDENCY,
    platform_id='identity',
    profile_id='gestor_operacional',
    title='Identity Platform declara dependencia controlada com integracoes',
    purpose='Evitar integracao direta invisivel entre identity e integracoes; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('identity', 'integracoes', 'tudo-para-ia-integracoes-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-identity-platform', 'tudo-para-ia-integracoes-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia identity->integracoes no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia identity->integracoes no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0303 = HumanControlRule(
    rule_id='identity__depends__customer_ops',
    scope=RuleScope.DEPENDENCY,
    platform_id='identity',
    profile_id='gestor_operacional',
    title='Identity Platform declara dependencia controlada com customer_ops',
    purpose='Evitar integracao direta invisivel entre identity e customer_ops; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('identity', 'customer_ops', 'tudo-para-ia-customer-ops-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-identity-platform', 'tudo-para-ia-customer-ops-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia identity->customer_ops no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia identity->customer_ops no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0304 = HumanControlRule(
    rule_id='identity__depends__compliance',
    scope=RuleScope.DEPENDENCY,
    platform_id='identity',
    profile_id='gestor_operacional',
    title='Identity Platform declara dependencia controlada com compliance',
    purpose='Evitar integracao direta invisivel entre identity e compliance; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='identity via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('identity', 'compliance', 'tudo-para-ia-compliance-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-identity-platform', 'tudo-para-ia-compliance-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia identity->compliance no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia identity->compliance no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0305 = HumanControlRule(
    rule_id='integracoes__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='administrador_empresa',
    title='Integracoes Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'administrador_empresa', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'administrador_empresaNeed', 'byokState', 'securityGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para administrador_empresa',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0306 = HumanControlRule(
    rule_id='integracoes__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='ceo',
    title='Integracoes Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'ceo', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'ceoNeed', 'byokState', 'commercialGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para ceo',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0307 = HumanControlRule(
    rule_id='integracoes__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Integracoes Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'gestor_operacional', 'integration', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'gestor_operacionalNeed', 'byokState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para gestor_operacional',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0308 = HumanControlRule(
    rule_id='integracoes__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='suporte',
    title='Integracoes Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'suporte', 'integration', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'suporteNeed', 'byokState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para suporte',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0309 = HumanControlRule(
    rule_id='integracoes__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='atendimento_cliente',
    title='Integracoes Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'atendimento_cliente', 'integration', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'atendimento_clienteNeed', 'byokState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para atendimento_cliente',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0310 = HumanControlRule(
    rule_id='integracoes__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='financeiro',
    title='Integracoes Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'financeiro', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'financeiroNeed', 'byokState', 'commercialGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para financeiro',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0311 = HumanControlRule(
    rule_id='integracoes__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='contador',
    title='Integracoes Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'contador', 'integration', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'contadorNeed', 'byokState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para contador',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0312 = HumanControlRule(
    rule_id='integracoes__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='juridico',
    title='Integracoes Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'juridico', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'juridicoNeed', 'byokState', 'securityGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para juridico',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0313 = HumanControlRule(
    rule_id='integracoes__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='secretaria',
    title='Integracoes Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'secretaria', 'integration', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'secretariaNeed', 'byokState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para secretaria',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0314 = HumanControlRule(
    rule_id='integracoes__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='tecnico',
    title='Integracoes Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'tecnico', 'security', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'tecnicoNeed', 'byokState', 'securityGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para tecnico',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0315 = HumanControlRule(
    rule_id='integracoes__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='usuario_final',
    title='Integracoes Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'usuario_final', 'integration', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'usuario_finalNeed', 'byokState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para usuario_final',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0316 = HumanControlRule(
    rule_id='integracoes__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='cliente_externo',
    title='Integracoes Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'cliente_externo', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'cliente_externoNeed', 'byokState', 'commercialGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para cliente_externo',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0317 = HumanControlRule(
    rule_id='integracoes__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='integracoes',
    profile_id='planejamento_estrategico',
    title='Integracoes Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Integracoes Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'providers', 'credentials'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'integracoes', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('integracoes', 'tudo-para-ia-integracoes-plataform', 'planejamento_estrategico', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'planejamento_estrategicoNeed', 'byokState', 'commercialGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de integracoes para planejamento_estrategico',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0318 = HumanControlRule(
    rule_id='integracoes__surface__byok',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='integracoes',
    profile_id='todos',
    title='Superficie BYOK de Integracoes Platform passa pelo MCP',
    purpose='Formalizar que a superficie BYOK de Integracoes Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('BYOK', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('BYOK', 'tudo-para-ia-integracoes-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'BYOK ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'todosNeed', 'byokState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover BYOK de integracoes a painel MCP same-source',
    priority='alta',
    generated_from='platform_surface_catalog',
)

RULE_0319 = HumanControlRule(
    rule_id='integracoes__surface__providers',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='integracoes',
    profile_id='todos',
    title='Superficie providers de Integracoes Platform passa pelo MCP',
    purpose='Formalizar que a superficie providers de Integracoes Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('providers', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('providers', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('providers', 'tudo-para-ia-integracoes-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'providers ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'todosNeed', 'providersState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie providers', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover providers de integracoes a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0320 = HumanControlRule(
    rule_id='integracoes__surface__credentials',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='integracoes',
    profile_id='todos',
    title='Superficie credentials de Integracoes Platform passa pelo MCP',
    purpose='Formalizar que a superficie credentials de Integracoes Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('credentials', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('credentials', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('credentials', 'tudo-para-ia-integracoes-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'credentials ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'todosNeed', 'credentialsState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie credentials', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover credentials de integracoes a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0321 = HumanControlRule(
    rule_id='integracoes__surface__smoke',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='integracoes',
    profile_id='todos',
    title='Superficie smoke de Integracoes Platform passa pelo MCP',
    purpose='Formalizar que a superficie smoke de Integracoes Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('smoke', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('smoke', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('smoke', 'tudo-para-ia-integracoes-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'smoke ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'todosNeed', 'smokeState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie smoke', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover smoke de integracoes a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0322 = HumanControlRule(
    rule_id='integracoes__surface__products',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='integracoes',
    profile_id='todos',
    title='Superficie products de Integracoes Platform passa pelo MCP',
    purpose='Formalizar que a superficie products de Integracoes Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('products', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('products', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('products', 'tudo-para-ia-integracoes-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'products ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'todosNeed', 'productsState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie products', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover products de integracoes a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0323 = HumanControlRule(
    rule_id='integracoes__surface__tenant',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='integracoes',
    profile_id='todos',
    title='Superficie tenant de Integracoes Platform passa pelo MCP',
    purpose='Formalizar que a superficie tenant de Integracoes Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tenant', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('tenant', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('tenant', 'tudo-para-ia-integracoes-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'tenant ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'todosNeed', 'tenantState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie tenant', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover tenant de integracoes a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0324 = HumanControlRule(
    rule_id='integracoes__administrador_empresa__byok',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa BYOK de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que BYOK sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'integracoes', 'BYOK', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'BYOK', 'integracoes', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'BYOK ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'administrador_empresaNeed', 'byokState', 'securityGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar BYOK para administrador_empresa em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0325 = HumanControlRule(
    rule_id='integracoes__administrador_empresa__providers',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa providers de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que providers sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('providers', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'integracoes', 'providers', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'providers', 'integracoes', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'providers ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'administrador_empresaNeed', 'providersState', 'securityGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie providers', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar providers para administrador_empresa em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0326 = HumanControlRule(
    rule_id='integracoes__administrador_empresa__credentials',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa credentials de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que credentials sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('credentials', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'integracoes', 'credentials', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'credentials', 'integracoes', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'credentials ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'administrador_empresaNeed', 'credentialsState', 'securityGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie credentials', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar credentials para administrador_empresa em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0327 = HumanControlRule(
    rule_id='integracoes__administrador_empresa__smoke',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa smoke de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que smoke sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('smoke', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'integracoes', 'smoke', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'smoke', 'integracoes', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'smoke ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'administrador_empresaNeed', 'smokeState', 'securityGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie smoke', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar smoke para administrador_empresa em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0328 = HumanControlRule(
    rule_id='integracoes__administrador_empresa__products',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa products de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que products sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('products', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'integracoes', 'products', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'products', 'integracoes', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'products ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'administrador_empresaNeed', 'productsState', 'securityGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie products', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar products para administrador_empresa em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0329 = HumanControlRule(
    rule_id='integracoes__administrador_empresa__tenant',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa tenant de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que tenant sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tenant', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('identity', 'rbac', 'credentialRef', 'audit', 'redaction', 'integracoes', 'tenant', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'tenant', 'integracoes', 'security', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'tenant ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'administrador_empresaNeed', 'tenantState', 'securityGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie tenant', 'registrar evidencia sanitizada da categoria security', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tenant para administrador_empresa em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0330 = HumanControlRule(
    rule_id='integracoes__gestor_operacional__byok',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Gestor operacional usa BYOK de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que BYOK sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'BYOK', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'BYOK', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'BYOK ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'gestor_operacionalNeed', 'byokState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar BYOK para gestor_operacional em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0331 = HumanControlRule(
    rule_id='integracoes__gestor_operacional__providers',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Gestor operacional usa providers de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que providers sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('providers', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'providers', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'providers', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'providers ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'gestor_operacionalNeed', 'providersState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie providers', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar providers para gestor_operacional em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0332 = HumanControlRule(
    rule_id='integracoes__gestor_operacional__credentials',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Gestor operacional usa credentials de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que credentials sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('credentials', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'credentials', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'credentials', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'credentials ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'gestor_operacionalNeed', 'credentialsState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie credentials', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar credentials para gestor_operacional em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0333 = HumanControlRule(
    rule_id='integracoes__gestor_operacional__smoke',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Gestor operacional usa smoke de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que smoke sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('smoke', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'smoke', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'smoke', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'smoke ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'gestor_operacionalNeed', 'smokeState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie smoke', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar smoke para gestor_operacional em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0334 = HumanControlRule(
    rule_id='integracoes__gestor_operacional__products',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Gestor operacional usa products de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que products sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('products', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'products', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'products', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'products ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'gestor_operacionalNeed', 'productsState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie products', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar products para gestor_operacional em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0335 = HumanControlRule(
    rule_id='integracoes__gestor_operacional__tenant',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Gestor operacional usa tenant de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que tenant sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tenant', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'tenant', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'tenant', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'tenant ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'gestor_operacionalNeed', 'tenantState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie tenant', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tenant para gestor_operacional em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0336 = HumanControlRule(
    rule_id='integracoes__tecnico__byok',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='tecnico',
    title='Tecnico usa BYOK de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que BYOK sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'BYOK', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'BYOK', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'BYOK ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'tecnicoNeed', 'byokState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar BYOK para tecnico em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0337 = HumanControlRule(
    rule_id='integracoes__tecnico__providers',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='tecnico',
    title='Tecnico usa providers de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que providers sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('providers', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'providers', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'providers', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'providers ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'tecnicoNeed', 'providersState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie providers', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar providers para tecnico em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0338 = HumanControlRule(
    rule_id='integracoes__tecnico__credentials',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='tecnico',
    title='Tecnico usa credentials de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que credentials sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('credentials', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'credentials', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'credentials', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'credentials ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'tecnicoNeed', 'credentialsState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie credentials', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar credentials para tecnico em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0339 = HumanControlRule(
    rule_id='integracoes__tecnico__smoke',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='tecnico',
    title='Tecnico usa smoke de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que smoke sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('smoke', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'smoke', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'smoke', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'smoke ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'tecnicoNeed', 'smokeState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie smoke', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar smoke para tecnico em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0340 = HumanControlRule(
    rule_id='integracoes__tecnico__products',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='tecnico',
    title='Tecnico usa products de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que products sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('products', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'products', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'products', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'products ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'tecnicoNeed', 'productsState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie products', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar products para tecnico em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0341 = HumanControlRule(
    rule_id='integracoes__tecnico__tenant',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='tecnico',
    title='Tecnico usa tenant de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que tenant sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tenant', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'integracoes', 'tenant', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'tenant', 'integracoes', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'tenant ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'tecnicoNeed', 'tenantState', 'integrationGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie tenant', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tenant para tecnico em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0342 = HumanControlRule(
    rule_id='integracoes__cliente_externo__byok',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='cliente_externo',
    title='Cliente externo usa BYOK de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que BYOK sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('BYOK', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'integracoes', 'BYOK', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'BYOK', 'integracoes', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'BYOK ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'cliente_externoNeed', 'byokState', 'commercialGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie BYOK', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar BYOK para cliente_externo em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0343 = HumanControlRule(
    rule_id='integracoes__cliente_externo__providers',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='cliente_externo',
    title='Cliente externo usa providers de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que providers sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('providers', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'integracoes', 'providers', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'providers', 'integracoes', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'providers ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'cliente_externoNeed', 'providersState', 'commercialGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie providers', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar providers para cliente_externo em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0344 = HumanControlRule(
    rule_id='integracoes__cliente_externo__credentials',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='cliente_externo',
    title='Cliente externo usa credentials de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que credentials sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('credentials', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'integracoes', 'credentials', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'credentials', 'integracoes', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'credentials ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'cliente_externoNeed', 'credentialsState', 'commercialGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie credentials', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar credentials para cliente_externo em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0345 = HumanControlRule(
    rule_id='integracoes__cliente_externo__smoke',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='cliente_externo',
    title='Cliente externo usa smoke de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que smoke sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('smoke', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'integracoes', 'smoke', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'smoke', 'integracoes', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'smoke ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'cliente_externoNeed', 'smokeState', 'commercialGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie smoke', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar smoke para cliente_externo em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0346 = HumanControlRule(
    rule_id='integracoes__cliente_externo__products',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='cliente_externo',
    title='Cliente externo usa products de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que products sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('products', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'integracoes', 'products', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'products', 'integracoes', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'products ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'cliente_externoNeed', 'productsState', 'commercialGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie products', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar products para cliente_externo em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0347 = HumanControlRule(
    rule_id='integracoes__cliente_externo__tenant',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='integracoes',
    profile_id='cliente_externo',
    title='Cliente externo usa tenant de Integracoes Platform com verdade rastreavel',
    purpose='Exigir que tenant sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tenant', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'integracoes', 'tenant', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'tenant', 'integracoes', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked', 'tenant ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'integracoesStatus', 'cliente_externoNeed', 'tenantState', 'commercialGate'),
    validation_steps=('confirmar que integracoes expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie tenant', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tenant para cliente_externo em integracoes',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0348 = HumanControlRule(
    rule_id='integracoes__depends__identity',
    scope=RuleScope.DEPENDENCY,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Integracoes Platform declara dependencia controlada com identity',
    purpose='Evitar integracao direta invisivel entre integracoes e identity; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('integracoes', 'identity', 'tudo-para-ia-identity-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-integracoes-plataform', 'tudo-para-ia-identity-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia integracoes->identity no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia integracoes->identity no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0349 = HumanControlRule(
    rule_id='integracoes__depends__business',
    scope=RuleScope.DEPENDENCY,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Integracoes Platform declara dependencia controlada com business',
    purpose='Evitar integracao direta invisivel entre integracoes e business; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('integracoes', 'business', 'tudo-para-ia-business-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-integracoes-plataform', 'tudo-para-ia-business-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia integracoes->business no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia integracoes->business no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0350 = HumanControlRule(
    rule_id='integracoes__depends__mcps',
    scope=RuleScope.DEPENDENCY,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Integracoes Platform declara dependencia controlada com mcps',
    purpose='Evitar integracao direta invisivel entre integracoes e mcps; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('integracoes', 'mcps', 'tudo-para-ia-mcps-internos-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-integracoes-plataform', 'tudo-para-ia-mcps-internos-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia integracoes->mcps no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia integracoes->mcps no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0351 = HumanControlRule(
    rule_id='integracoes__depends__customer_ops',
    scope=RuleScope.DEPENDENCY,
    platform_id='integracoes',
    profile_id='gestor_operacional',
    title='Integracoes Platform declara dependencia controlada com customer_ops',
    purpose='Evitar integracao direta invisivel entre integracoes e customer_ops; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='integracoes via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('integracoes', 'customer_ops', 'tudo-para-ia-customer-ops-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-integracoes-plataform', 'tudo-para-ia-customer-ops-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'test_user_not_found', 'credential leak', 'secret leaked'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia integracoes->customer_ops no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia integracoes->customer_ops no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0352 = HumanControlRule(
    rule_id='intelligence__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='administrador_empresa',
    title='Intelligence Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'administrador_empresa', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'administrador_empresaNeed', 'analyticsState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para administrador_empresa',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0353 = HumanControlRule(
    rule_id='intelligence__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='ceo',
    title='Intelligence Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'ceo', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'ceoNeed', 'analyticsState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para ceo',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0354 = HumanControlRule(
    rule_id='intelligence__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='gestor_operacional',
    title='Intelligence Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'gestor_operacional', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'gestor_operacionalNeed', 'analyticsState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para gestor_operacional',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0355 = HumanControlRule(
    rule_id='intelligence__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='suporte',
    title='Intelligence Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'suporte', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'suporteNeed', 'analyticsState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para suporte',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0356 = HumanControlRule(
    rule_id='intelligence__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='atendimento_cliente',
    title='Intelligence Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'atendimento_cliente', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'atendimento_clienteNeed', 'analyticsState', 'experienceGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para atendimento_cliente',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0357 = HumanControlRule(
    rule_id='intelligence__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='financeiro',
    title='Intelligence Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'financeiro', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'financeiroNeed', 'analyticsState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para financeiro',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0358 = HumanControlRule(
    rule_id='intelligence__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='contador',
    title='Intelligence Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'contador', 'strategy', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'contadorNeed', 'analyticsState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para contador',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0359 = HumanControlRule(
    rule_id='intelligence__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='juridico',
    title='Intelligence Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'juridico', 'strategy', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'juridicoNeed', 'analyticsState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para juridico',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0360 = HumanControlRule(
    rule_id='intelligence__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='secretaria',
    title='Intelligence Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'secretaria', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'secretariaNeed', 'analyticsState', 'experienceGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para secretaria',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0361 = HumanControlRule(
    rule_id='intelligence__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='tecnico',
    title='Intelligence Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'tecnico', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'tecnicoNeed', 'analyticsState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para tecnico',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0362 = HumanControlRule(
    rule_id='intelligence__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='usuario_final',
    title='Intelligence Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'usuario_final', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'usuario_finalNeed', 'analyticsState', 'experienceGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para usuario_final',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0363 = HumanControlRule(
    rule_id='intelligence__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='cliente_externo',
    title='Intelligence Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'cliente_externo', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'cliente_externoNeed', 'analyticsState', 'experienceGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para cliente_externo',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0364 = HumanControlRule(
    rule_id='intelligence__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='intelligence',
    profile_id='planejamento_estrategico',
    title='Intelligence Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Intelligence Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'recommendations', 'risk'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('intelligence', 'tudo-para-ia-intelligence-platform', 'planejamento_estrategico', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'planejamento_estrategicoNeed', 'analyticsState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de intelligence para planejamento_estrategico',
    priority='alta',
    generated_from='platform_profile_catalog',
)

RULE_0365 = HumanControlRule(
    rule_id='intelligence__surface__analytics',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='intelligence',
    profile_id='todos',
    title='Superficie analytics de Intelligence Platform passa pelo MCP',
    purpose='Formalizar que a superficie analytics de Intelligence Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('analytics', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('analytics', 'tudo-para-ia-intelligence-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'analytics ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'todosNeed', 'analyticsState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover analytics de intelligence a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0366 = HumanControlRule(
    rule_id='intelligence__surface__recommendations',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='intelligence',
    profile_id='todos',
    title='Superficie recommendations de Intelligence Platform passa pelo MCP',
    purpose='Formalizar que a superficie recommendations de Intelligence Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('recommendations', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('recommendations', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('recommendations', 'tudo-para-ia-intelligence-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'recommendations ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'todosNeed', 'recommendationsState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie recommendations', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover recommendations de intelligence a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0367 = HumanControlRule(
    rule_id='intelligence__surface__risk',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='intelligence',
    profile_id='todos',
    title='Superficie risk de Intelligence Platform passa pelo MCP',
    purpose='Formalizar que a superficie risk de Intelligence Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('risk', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('risk', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('risk', 'tudo-para-ia-intelligence-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'risk ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'todosNeed', 'riskState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie risk', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover risk de intelligence a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0368 = HumanControlRule(
    rule_id='intelligence__surface__prioritization',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='intelligence',
    profile_id='todos',
    title='Superficie prioritization de Intelligence Platform passa pelo MCP',
    purpose='Formalizar que a superficie prioritization de Intelligence Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('prioritization', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('prioritization', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('prioritization', 'tudo-para-ia-intelligence-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'prioritization ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'todosNeed', 'prioritizationState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie prioritization', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover prioritization de intelligence a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0369 = HumanControlRule(
    rule_id='intelligence__ceo__analytics',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='ceo',
    title='CEO usa analytics de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que analytics sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'intelligence', 'analytics', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'analytics', 'intelligence', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'analytics ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'ceoNeed', 'analyticsState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar analytics para ceo em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0370 = HumanControlRule(
    rule_id='intelligence__ceo__recommendations',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='ceo',
    title='CEO usa recommendations de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que recommendations sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('recommendations', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'intelligence', 'recommendations', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'recommendations', 'intelligence', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'recommendations ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'ceoNeed', 'recommendationsState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie recommendations', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar recommendations para ceo em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0371 = HumanControlRule(
    rule_id='intelligence__ceo__risk',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='ceo',
    title='CEO usa risk de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que risk sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('risk', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'intelligence', 'risk', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'risk', 'intelligence', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'risk ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'ceoNeed', 'riskState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie risk', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar risk para ceo em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0372 = HumanControlRule(
    rule_id='intelligence__ceo__prioritization',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='ceo',
    title='CEO usa prioritization de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que prioritization sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('prioritization', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'intelligence', 'prioritization', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'prioritization', 'intelligence', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'prioritization ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'ceoNeed', 'prioritizationState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie prioritization', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar prioritization para ceo em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0373 = HumanControlRule(
    rule_id='intelligence__gestor_operacional__analytics',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='gestor_operacional',
    title='Gestor operacional usa analytics de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que analytics sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'analytics', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'analytics', 'intelligence', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'analytics ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'gestor_operacionalNeed', 'analyticsState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar analytics para gestor_operacional em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0374 = HumanControlRule(
    rule_id='intelligence__gestor_operacional__recommendations',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='gestor_operacional',
    title='Gestor operacional usa recommendations de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que recommendations sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('recommendations', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'recommendations', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'recommendations', 'intelligence', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'recommendations ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'gestor_operacionalNeed', 'recommendationsState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie recommendations', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar recommendations para gestor_operacional em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0375 = HumanControlRule(
    rule_id='intelligence__gestor_operacional__risk',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='gestor_operacional',
    title='Gestor operacional usa risk de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que risk sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('risk', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'risk', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'risk', 'intelligence', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'risk ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'gestor_operacionalNeed', 'riskState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie risk', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar risk para gestor_operacional em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0376 = HumanControlRule(
    rule_id='intelligence__gestor_operacional__prioritization',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='gestor_operacional',
    title='Gestor operacional usa prioritization de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que prioritization sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('prioritization', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'intelligence', 'prioritization', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'prioritization', 'intelligence', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'prioritization ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'gestor_operacionalNeed', 'prioritizationState', 'observabilityGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie prioritization', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar prioritization para gestor_operacional em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0377 = HumanControlRule(
    rule_id='intelligence__planejamento_estrategico__analytics',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa analytics de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que analytics sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('analytics', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'intelligence', 'analytics', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'analytics', 'intelligence', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'analytics ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'planejamento_estrategicoNeed', 'analyticsState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie analytics', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar analytics para planejamento_estrategico em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0378 = HumanControlRule(
    rule_id='intelligence__planejamento_estrategico__recommendations',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa recommendations de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que recommendations sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('recommendations', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'intelligence', 'recommendations', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'recommendations', 'intelligence', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'recommendations ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'planejamento_estrategicoNeed', 'recommendationsState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie recommendations', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar recommendations para planejamento_estrategico em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0379 = HumanControlRule(
    rule_id='intelligence__planejamento_estrategico__risk',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa risk de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que risk sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('risk', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'intelligence', 'risk', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'risk', 'intelligence', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'risk ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'planejamento_estrategicoNeed', 'riskState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie risk', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar risk para planejamento_estrategico em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0380 = HumanControlRule(
    rule_id='intelligence__planejamento_estrategico__prioritization',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='intelligence',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa prioritization de Intelligence Platform com verdade rastreavel',
    purpose='Exigir que prioritization sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('prioritization', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('roadmap', 'maturity', 'risk', 'priority', 'executive', 'intelligence', 'prioritization', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'prioritization', 'intelligence', 'strategy', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend', 'prioritization ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'intelligenceStatus', 'planejamento_estrategicoNeed', 'prioritizationState', 'strategyGate'),
    validation_steps=('confirmar que intelligence expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie prioritization', 'registrar evidencia sanitizada da categoria strategy', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar prioritization para planejamento_estrategico em intelligence',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0381 = HumanControlRule(
    rule_id='intelligence__depends__mcps',
    scope=RuleScope.DEPENDENCY,
    platform_id='intelligence',
    profile_id='gestor_operacional',
    title='Intelligence Platform declara dependencia controlada com mcps',
    purpose='Evitar integracao direta invisivel entre intelligence e mcps; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('intelligence', 'mcps', 'tudo-para-ia-mcps-internos-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-intelligence-platform', 'tudo-para-ia-mcps-internos-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia intelligence->mcps no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia intelligence->mcps no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0382 = HumanControlRule(
    rule_id='intelligence__depends__docs',
    scope=RuleScope.DEPENDENCY,
    platform_id='intelligence',
    profile_id='gestor_operacional',
    title='Intelligence Platform declara dependencia controlada com docs',
    purpose='Evitar integracao direta invisivel entre intelligence e docs; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('intelligence', 'docs', 'tudo-para-ia-docs-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-intelligence-platform', 'tudo-para-ia-docs-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia intelligence->docs no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia intelligence->docs no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0383 = HumanControlRule(
    rule_id='intelligence__depends__business',
    scope=RuleScope.DEPENDENCY,
    platform_id='intelligence',
    profile_id='gestor_operacional',
    title='Intelligence Platform declara dependencia controlada com business',
    purpose='Evitar integracao direta invisivel entre intelligence e business; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='intelligence via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('intelligence', 'business', 'tudo-para-ia-business-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-intelligence-platform', 'tudo-para-ia-business-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sem backend'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia intelligence->business no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia intelligence->business no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0384 = HumanControlRule(
    rule_id='mcps__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='administrador_empresa',
    title='MCPs Internos Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'administrador_empresa', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'administrador_empresaNeed', 'admin-uiState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0385 = HumanControlRule(
    rule_id='mcps__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='ceo',
    title='MCPs Internos Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'ceo', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'ceoNeed', 'admin-uiState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0386 = HumanControlRule(
    rule_id='mcps__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='MCPs Internos Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'gestor_operacional', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'gestor_operacionalNeed', 'admin-uiState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0387 = HumanControlRule(
    rule_id='mcps__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='suporte',
    title='MCPs Internos Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'suporte', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'suporteNeed', 'admin-uiState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0388 = HumanControlRule(
    rule_id='mcps__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='atendimento_cliente',
    title='MCPs Internos Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'atendimento_cliente', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'atendimento_clienteNeed', 'admin-uiState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0389 = HumanControlRule(
    rule_id='mcps__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='financeiro',
    title='MCPs Internos Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'financeiro', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'financeiroNeed', 'admin-uiState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0390 = HumanControlRule(
    rule_id='mcps__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='contador',
    title='MCPs Internos Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'contador', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'contadorNeed', 'admin-uiState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0391 = HumanControlRule(
    rule_id='mcps__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='juridico',
    title='MCPs Internos Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'juridico', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'juridicoNeed', 'admin-uiState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0392 = HumanControlRule(
    rule_id='mcps__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='secretaria',
    title='MCPs Internos Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'secretaria', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'secretariaNeed', 'admin-uiState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0393 = HumanControlRule(
    rule_id='mcps__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='tecnico',
    title='MCPs Internos Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'tecnico', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'tecnicoNeed', 'admin-uiState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0394 = HumanControlRule(
    rule_id='mcps__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='usuario_final',
    title='MCPs Internos Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'usuario_final', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'usuario_finalNeed', 'admin-uiState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0395 = HumanControlRule(
    rule_id='mcps__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='cliente_externo',
    title='MCPs Internos Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'cliente_externo', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'cliente_externoNeed', 'admin-uiState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0396 = HumanControlRule(
    rule_id='mcps__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='mcps',
    profile_id='planejamento_estrategico',
    title='MCPs Internos Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de MCPs Internos Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'tools', 'readiness'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('mcps', 'tudo-para-ia-mcps-internos-plataform', 'planejamento_estrategico', 'observability', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'planejamento_estrategicoNeed', 'admin-uiState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de mcps para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0397 = HumanControlRule(
    rule_id='mcps__surface__admin-ui',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='mcps',
    profile_id='todos',
    title='Superficie admin_ui de MCPs Internos Platform passa pelo MCP',
    purpose='Formalizar que a superficie admin_ui de MCPs Internos Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('admin_ui', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('admin_ui', 'tudo-para-ia-mcps-internos-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'admin_ui ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'todosNeed', 'admin-uiState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover admin_ui de mcps a painel MCP same-source',
    priority='alta',
    generated_from='platform_surface_catalog',
)

RULE_0398 = HumanControlRule(
    rule_id='mcps__surface__tools',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='mcps',
    profile_id='todos',
    title='Superficie tools de MCPs Internos Platform passa pelo MCP',
    purpose='Formalizar que a superficie tools de MCPs Internos Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tools', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('tools', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('tools', 'tudo-para-ia-mcps-internos-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'tools ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'todosNeed', 'toolsState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie tools', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover tools de mcps a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0399 = HumanControlRule(
    rule_id='mcps__surface__readiness',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='mcps',
    profile_id='todos',
    title='Superficie readiness de MCPs Internos Platform passa pelo MCP',
    purpose='Formalizar que a superficie readiness de MCPs Internos Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('readiness', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('readiness', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('readiness', 'tudo-para-ia-mcps-internos-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'todosNeed', 'readinessState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie readiness', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover readiness de mcps a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0400 = HumanControlRule(
    rule_id='mcps__surface__samesource',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='mcps',
    profile_id='todos',
    title='Superficie sameSource de MCPs Internos Platform passa pelo MCP',
    purpose='Formalizar que a superficie sameSource de MCPs Internos Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sameSource', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('sameSource', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('sameSource', 'tudo-para-ia-mcps-internos-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sameSource ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'todosNeed', 'samesourceState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie sameSource', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover sameSource de mcps a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0401 = HumanControlRule(
    rule_id='mcps__surface__evidence',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='mcps',
    profile_id='todos',
    title='Superficie evidence de MCPs Internos Platform passa pelo MCP',
    purpose='Formalizar que a superficie evidence de MCPs Internos Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('evidence', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('evidence', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('evidence', 'tudo-para-ia-mcps-internos-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'evidence ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'todosNeed', 'evidenceState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie evidence', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover evidence de mcps a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0402 = HumanControlRule(
    rule_id='mcps__surface__catalog',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='mcps',
    profile_id='todos',
    title='Superficie catalog de MCPs Internos Platform passa pelo MCP',
    purpose='Formalizar que a superficie catalog de MCPs Internos Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('catalog', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('catalog', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('catalog', 'tudo-para-ia-mcps-internos-plataform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'catalog ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'todosNeed', 'catalogState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie catalog', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover catalog de mcps a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0403 = HumanControlRule(
    rule_id='mcps__administrador_empresa__admin-ui',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa admin_ui de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que admin_ui sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'admin_ui', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'admin_ui', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'admin_ui ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'administrador_empresaNeed', 'admin-uiState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar admin_ui para administrador_empresa em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0404 = HumanControlRule(
    rule_id='mcps__administrador_empresa__tools',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa tools de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que tools sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tools', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'tools', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'tools', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'tools ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'administrador_empresaNeed', 'toolsState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie tools', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tools para administrador_empresa em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0405 = HumanControlRule(
    rule_id='mcps__administrador_empresa__readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa readiness de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que readiness sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'readiness', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'administrador_empresaNeed', 'readinessState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie readiness', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar readiness para administrador_empresa em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0406 = HumanControlRule(
    rule_id='mcps__administrador_empresa__samesource',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa sameSource de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que sameSource sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sameSource', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'sameSource', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'sameSource', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sameSource ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'administrador_empresaNeed', 'samesourceState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie sameSource', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sameSource para administrador_empresa em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0407 = HumanControlRule(
    rule_id='mcps__administrador_empresa__evidence',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa evidence de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que evidence sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('evidence', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'evidence', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'evidence', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'evidence ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'administrador_empresaNeed', 'evidenceState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie evidence', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar evidence para administrador_empresa em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0408 = HumanControlRule(
    rule_id='mcps__administrador_empresa__catalog',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa catalog de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que catalog sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('catalog', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'catalog', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'catalog', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'catalog ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'administrador_empresaNeed', 'catalogState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie catalog', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar catalog para administrador_empresa em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0409 = HumanControlRule(
    rule_id='mcps__gestor_operacional__admin-ui',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='Gestor operacional usa admin_ui de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que admin_ui sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'admin_ui', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'admin_ui', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'admin_ui ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'gestor_operacionalNeed', 'admin-uiState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar admin_ui para gestor_operacional em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0410 = HumanControlRule(
    rule_id='mcps__gestor_operacional__tools',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='Gestor operacional usa tools de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que tools sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tools', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'tools', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'tools', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'tools ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'gestor_operacionalNeed', 'toolsState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie tools', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tools para gestor_operacional em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0411 = HumanControlRule(
    rule_id='mcps__gestor_operacional__readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='Gestor operacional usa readiness de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que readiness sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'readiness', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'gestor_operacionalNeed', 'readinessState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie readiness', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar readiness para gestor_operacional em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0412 = HumanControlRule(
    rule_id='mcps__gestor_operacional__samesource',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='Gestor operacional usa sameSource de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que sameSource sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sameSource', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'sameSource', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'sameSource', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sameSource ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'gestor_operacionalNeed', 'samesourceState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie sameSource', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sameSource para gestor_operacional em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0413 = HumanControlRule(
    rule_id='mcps__gestor_operacional__evidence',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='Gestor operacional usa evidence de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que evidence sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('evidence', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'evidence', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'evidence', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'evidence ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'gestor_operacionalNeed', 'evidenceState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie evidence', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar evidence para gestor_operacional em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0414 = HumanControlRule(
    rule_id='mcps__gestor_operacional__catalog',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='Gestor operacional usa catalog de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que catalog sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('catalog', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('metrics', 'latency', 'trace', 'audit', 'evidence', 'mcps', 'catalog', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'catalog', 'mcps', 'observability', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'catalog ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'gestor_operacionalNeed', 'catalogState', 'observabilityGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie catalog', 'registrar evidencia sanitizada da categoria observability', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar catalog para gestor_operacional em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0415 = HumanControlRule(
    rule_id='mcps__tecnico__admin-ui',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='tecnico',
    title='Tecnico usa admin_ui de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que admin_ui sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'mcps', 'admin_ui', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'admin_ui', 'mcps', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'admin_ui ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'tecnicoNeed', 'admin-uiState', 'integrationGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar admin_ui para tecnico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0416 = HumanControlRule(
    rule_id='mcps__tecnico__tools',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='tecnico',
    title='Tecnico usa tools de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que tools sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tools', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'mcps', 'tools', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'tools', 'mcps', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'tools ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'tecnicoNeed', 'toolsState', 'integrationGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie tools', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tools para tecnico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0417 = HumanControlRule(
    rule_id='mcps__tecnico__readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='tecnico',
    title='Tecnico usa readiness de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que readiness sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'mcps', 'readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'readiness', 'mcps', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'tecnicoNeed', 'readinessState', 'integrationGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie readiness', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar readiness para tecnico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0418 = HumanControlRule(
    rule_id='mcps__tecnico__samesource',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='tecnico',
    title='Tecnico usa sameSource de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que sameSource sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sameSource', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'mcps', 'sameSource', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'sameSource', 'mcps', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sameSource ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'tecnicoNeed', 'samesourceState', 'integrationGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie sameSource', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sameSource para tecnico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0419 = HumanControlRule(
    rule_id='mcps__tecnico__evidence',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='tecnico',
    title='Tecnico usa evidence de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que evidence sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('evidence', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'mcps', 'evidence', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'evidence', 'mcps', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'evidence ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'tecnicoNeed', 'evidenceState', 'integrationGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie evidence', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar evidence para tecnico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0420 = HumanControlRule(
    rule_id='mcps__tecnico__catalog',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='tecnico',
    title='Tecnico usa catalog de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que catalog sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('catalog', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('provider', 'BYOK', 'credentialRef', 'smoke', 'tenant', 'mcps', 'catalog', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'catalog', 'mcps', 'integration', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'catalog ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'tecnicoNeed', 'catalogState', 'integrationGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie catalog', 'registrar evidencia sanitizada da categoria integration', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar catalog para tecnico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0421 = HumanControlRule(
    rule_id='mcps__planejamento_estrategico__admin-ui',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa admin_ui de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que admin_ui sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'admin_ui', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'admin_ui', 'mcps', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'admin_ui ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'planejamento_estrategicoNeed', 'admin-uiState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie admin_ui', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar admin_ui para planejamento_estrategico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0422 = HumanControlRule(
    rule_id='mcps__planejamento_estrategico__tools',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa tools de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que tools sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('tools', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'tools', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'tools', 'mcps', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'tools ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'planejamento_estrategicoNeed', 'toolsState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie tools', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar tools para planejamento_estrategico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0423 = HumanControlRule(
    rule_id='mcps__planejamento_estrategico__readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa readiness de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que readiness sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'readiness', 'mcps', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'planejamento_estrategicoNeed', 'readinessState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie readiness', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar readiness para planejamento_estrategico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0424 = HumanControlRule(
    rule_id='mcps__planejamento_estrategico__samesource',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa sameSource de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que sameSource sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sameSource', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'sameSource', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'sameSource', 'mcps', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sameSource ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'planejamento_estrategicoNeed', 'samesourceState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie sameSource', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sameSource para planejamento_estrategico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0425 = HumanControlRule(
    rule_id='mcps__planejamento_estrategico__evidence',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa evidence de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que evidence sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('evidence', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'evidence', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'evidence', 'mcps', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'evidence ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'planejamento_estrategicoNeed', 'evidenceState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie evidence', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar evidence para planejamento_estrategico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0426 = HumanControlRule(
    rule_id='mcps__planejamento_estrategico__catalog',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='mcps',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa catalog de MCPs Internos Platform com verdade rastreavel',
    purpose='Exigir que catalog sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('catalog', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'mcps', 'catalog', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'catalog', 'mcps', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'catalog ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mcpsStatus', 'planejamento_estrategicoNeed', 'catalogState', 'governanceGate'),
    validation_steps=('confirmar que mcps expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie catalog', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar catalog para planejamento_estrategico em mcps',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0427 = HumanControlRule(
    rule_id='mcps__depends__ui',
    scope=RuleScope.DEPENDENCY,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='MCPs Internos Platform declara dependencia controlada com ui',
    purpose='Evitar integracao direta invisivel entre mcps e ui; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('mcps', 'ui', 'tudo-para-ia-ui-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-mcps-internos-plataform', 'tudo-para-ia-ui-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia mcps->ui no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia mcps->ui no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0428 = HumanControlRule(
    rule_id='mcps__depends__docs',
    scope=RuleScope.DEPENDENCY,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='MCPs Internos Platform declara dependencia controlada com docs',
    purpose='Evitar integracao direta invisivel entre mcps e docs; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('mcps', 'docs', 'tudo-para-ia-docs-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-mcps-internos-plataform', 'tudo-para-ia-docs-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia mcps->docs no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia mcps->docs no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0429 = HumanControlRule(
    rule_id='mcps__depends__integracoes',
    scope=RuleScope.DEPENDENCY,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='MCPs Internos Platform declara dependencia controlada com integracoes',
    purpose='Evitar integracao direta invisivel entre mcps e integracoes; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('mcps', 'integracoes', 'tudo-para-ia-integracoes-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-mcps-internos-plataform', 'tudo-para-ia-integracoes-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia mcps->integracoes no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia mcps->integracoes no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0430 = HumanControlRule(
    rule_id='mcps__depends__identity',
    scope=RuleScope.DEPENDENCY,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='MCPs Internos Platform declara dependencia controlada com identity',
    purpose='Evitar integracao direta invisivel entre mcps e identity; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('mcps', 'identity', 'tudo-para-ia-identity-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-mcps-internos-plataform', 'tudo-para-ia-identity-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia mcps->identity no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia mcps->identity no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0431 = HumanControlRule(
    rule_id='mcps__depends__business',
    scope=RuleScope.DEPENDENCY,
    platform_id='mcps',
    profile_id='gestor_operacional',
    title='MCPs Internos Platform declara dependencia controlada com business',
    purpose='Evitar integracao direta invisivel entre mcps e business; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('mcps', 'business', 'tudo-para-ia-business-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-mcps-internos-plataform', 'tudo-para-ia-business-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia mcps->business no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia mcps->business no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0432 = HumanControlRule(
    rule_id='platform_base__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='administrador_empresa',
    title='Platform Base atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'administrador_empresa', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'administrador_empresaNeed', 'templatesState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0433 = HumanControlRule(
    rule_id='platform_base__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='ceo',
    title='Platform Base atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'ceo', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'ceoNeed', 'templatesState', 'documentationGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0434 = HumanControlRule(
    rule_id='platform_base__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='gestor_operacional',
    title='Platform Base atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'gestor_operacional', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'gestor_operacionalNeed', 'templatesState', 'operationsGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0435 = HumanControlRule(
    rule_id='platform_base__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='suporte',
    title='Platform Base atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'suporte', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'suporteNeed', 'templatesState', 'documentationGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0436 = HumanControlRule(
    rule_id='platform_base__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='atendimento_cliente',
    title='Platform Base atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'atendimento_cliente', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'atendimento_clienteNeed', 'templatesState', 'documentationGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0437 = HumanControlRule(
    rule_id='platform_base__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='financeiro',
    title='Platform Base atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'financeiro', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'financeiroNeed', 'templatesState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0438 = HumanControlRule(
    rule_id='platform_base__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='contador',
    title='Platform Base atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'contador', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'contadorNeed', 'templatesState', 'documentationGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0439 = HumanControlRule(
    rule_id='platform_base__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='juridico',
    title='Platform Base atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'juridico', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'juridicoNeed', 'templatesState', 'documentationGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0440 = HumanControlRule(
    rule_id='platform_base__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='secretaria',
    title='Platform Base atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'secretaria', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'secretariaNeed', 'templatesState', 'documentationGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0441 = HumanControlRule(
    rule_id='platform_base__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='tecnico',
    title='Platform Base atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'tecnico', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'tecnicoNeed', 'templatesState', 'operationsGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0442 = HumanControlRule(
    rule_id='platform_base__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='usuario_final',
    title='Platform Base atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'usuario_final', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'usuario_finalNeed', 'templatesState', 'documentationGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0443 = HumanControlRule(
    rule_id='platform_base__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='cliente_externo',
    title='Platform Base atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'cliente_externo', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'cliente_externoNeed', 'templatesState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0444 = HumanControlRule(
    rule_id='platform_base__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='platform_base',
    profile_id='planejamento_estrategico',
    title='Platform Base atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Platform Base pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'standards', 'contracts'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'platform_base', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('platform_base', 'tudo-para-ia-platform-base', 'planejamento_estrategico', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'planejamento_estrategicoNeed', 'templatesState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de platform_base para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0445 = HumanControlRule(
    rule_id='platform_base__surface__templates',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='platform_base',
    profile_id='todos',
    title='Superficie templates de Platform Base passa pelo MCP',
    purpose='Formalizar que a superficie templates de Platform Base possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('templates', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('templates', 'tudo-para-ia-platform-base', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'templates ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'todosNeed', 'templatesState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover templates de platform_base a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0446 = HumanControlRule(
    rule_id='platform_base__surface__standards',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='platform_base',
    profile_id='todos',
    title='Superficie standards de Platform Base passa pelo MCP',
    purpose='Formalizar que a superficie standards de Platform Base possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('standards', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('standards', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('standards', 'tudo-para-ia-platform-base', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'standards ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'todosNeed', 'standardsState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie standards', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover standards de platform_base a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0447 = HumanControlRule(
    rule_id='platform_base__surface__contracts',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='platform_base',
    profile_id='todos',
    title='Superficie contracts de Platform Base passa pelo MCP',
    purpose='Formalizar que a superficie contracts de Platform Base possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('contracts', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('contracts', 'tudo-para-ia-platform-base', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'todosNeed', 'contractsState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover contracts de platform_base a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0448 = HumanControlRule(
    rule_id='platform_base__surface__shared-runtime',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='platform_base',
    profile_id='todos',
    title='Superficie shared-runtime de Platform Base passa pelo MCP',
    purpose='Formalizar que a superficie shared-runtime de Platform Base possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('shared-runtime', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('shared-runtime', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('shared-runtime', 'tudo-para-ia-platform-base', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'shared-runtime ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'todosNeed', 'shared-runtimeState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie shared-runtime', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover shared-runtime de platform_base a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0449 = HumanControlRule(
    rule_id='platform_base__gestor_operacional__templates',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='gestor_operacional',
    title='Gestor operacional usa templates de Platform Base com verdade rastreavel',
    purpose='Exigir que templates sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'platform_base', 'templates', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'templates', 'platform_base', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'templates ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'gestor_operacionalNeed', 'templatesState', 'operationsGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar templates para gestor_operacional em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0450 = HumanControlRule(
    rule_id='platform_base__gestor_operacional__standards',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='gestor_operacional',
    title='Gestor operacional usa standards de Platform Base com verdade rastreavel',
    purpose='Exigir que standards sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('standards', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'platform_base', 'standards', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'standards', 'platform_base', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'standards ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'gestor_operacionalNeed', 'standardsState', 'operationsGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie standards', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar standards para gestor_operacional em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0451 = HumanControlRule(
    rule_id='platform_base__gestor_operacional__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='gestor_operacional',
    title='Gestor operacional usa contracts de Platform Base com verdade rastreavel',
    purpose='Exigir que contracts sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'platform_base', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'contracts', 'platform_base', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'gestor_operacionalNeed', 'contractsState', 'operationsGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para gestor_operacional em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0452 = HumanControlRule(
    rule_id='platform_base__gestor_operacional__shared-runtime',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='gestor_operacional',
    title='Gestor operacional usa shared-runtime de Platform Base com verdade rastreavel',
    purpose='Exigir que shared-runtime sirva Gestor operacional com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('shared-runtime', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'platform_base', 'shared-runtime', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('gestor_operacional', 'shared-runtime', 'platform_base', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'shared-runtime ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'gestor_operacionalNeed', 'shared-runtimeState', 'operationsGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie shared-runtime', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar shared-runtime para gestor_operacional em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0453 = HumanControlRule(
    rule_id='platform_base__tecnico__templates',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='tecnico',
    title='Tecnico usa templates de Platform Base com verdade rastreavel',
    purpose='Exigir que templates sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'platform_base', 'templates', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'templates', 'platform_base', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'templates ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'tecnicoNeed', 'templatesState', 'operationsGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar templates para tecnico em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0454 = HumanControlRule(
    rule_id='platform_base__tecnico__standards',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='tecnico',
    title='Tecnico usa standards de Platform Base com verdade rastreavel',
    purpose='Exigir que standards sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('standards', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'platform_base', 'standards', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'standards', 'platform_base', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'standards ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'tecnicoNeed', 'standardsState', 'operationsGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie standards', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar standards para tecnico em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0455 = HumanControlRule(
    rule_id='platform_base__tecnico__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='tecnico',
    title='Tecnico usa contracts de Platform Base com verdade rastreavel',
    purpose='Exigir que contracts sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'platform_base', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'contracts', 'platform_base', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'tecnicoNeed', 'contractsState', 'operationsGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para tecnico em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0456 = HumanControlRule(
    rule_id='platform_base__tecnico__shared-runtime',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='tecnico',
    title='Tecnico usa shared-runtime de Platform Base com verdade rastreavel',
    purpose='Exigir que shared-runtime sirva Tecnico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('shared-runtime', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'platform_base', 'shared-runtime', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('tecnico', 'shared-runtime', 'platform_base', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'shared-runtime ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'tecnicoNeed', 'shared-runtimeState', 'operationsGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie shared-runtime', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar shared-runtime para tecnico em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0457 = HumanControlRule(
    rule_id='platform_base__planejamento_estrategico__templates',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa templates de Platform Base com verdade rastreavel',
    purpose='Exigir que templates sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('templates', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'platform_base', 'templates', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'templates', 'platform_base', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'templates ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'planejamento_estrategicoNeed', 'templatesState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie templates', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar templates para planejamento_estrategico em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0458 = HumanControlRule(
    rule_id='platform_base__planejamento_estrategico__standards',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa standards de Platform Base com verdade rastreavel',
    purpose='Exigir que standards sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('standards', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'platform_base', 'standards', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'standards', 'platform_base', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'standards ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'planejamento_estrategicoNeed', 'standardsState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie standards', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar standards para planejamento_estrategico em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0459 = HumanControlRule(
    rule_id='platform_base__planejamento_estrategico__contracts',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa contracts de Platform Base com verdade rastreavel',
    purpose='Exigir que contracts sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('contracts', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'platform_base', 'contracts', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'contracts', 'platform_base', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'contracts ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'planejamento_estrategicoNeed', 'contractsState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie contracts', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar contracts para planejamento_estrategico em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0460 = HumanControlRule(
    rule_id='platform_base__planejamento_estrategico__shared-runtime',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='platform_base',
    profile_id='planejamento_estrategico',
    title='Planejamento estrategico usa shared-runtime de Platform Base com verdade rastreavel',
    purpose='Exigir que shared-runtime sirva Planejamento estrategico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('shared-runtime', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'platform_base', 'shared-runtime', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('planejamento_estrategico', 'shared-runtime', 'platform_base', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'shared-runtime ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'platform_baseStatus', 'planejamento_estrategicoNeed', 'shared-runtimeState', 'governanceGate'),
    validation_steps=('confirmar que platform_base expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie shared-runtime', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar shared-runtime para planejamento_estrategico em platform_base',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0461 = HumanControlRule(
    rule_id='platform_base__depends__mcps',
    scope=RuleScope.DEPENDENCY,
    platform_id='platform_base',
    profile_id='gestor_operacional',
    title='Platform Base declara dependencia controlada com mcps',
    purpose='Evitar integracao direta invisivel entre platform_base e mcps; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('platform_base', 'mcps', 'tudo-para-ia-mcps-internos-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-platform-base', 'tudo-para-ia-mcps-internos-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia platform_base->mcps no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia platform_base->mcps no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0462 = HumanControlRule(
    rule_id='platform_base__depends__docs',
    scope=RuleScope.DEPENDENCY,
    platform_id='platform_base',
    profile_id='gestor_operacional',
    title='Platform Base declara dependencia controlada com docs',
    purpose='Evitar integracao direta invisivel entre platform_base e docs; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('platform_base', 'docs', 'tudo-para-ia-docs-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-platform-base', 'tudo-para-ia-docs-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia platform_base->docs no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia platform_base->docs no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0463 = HumanControlRule(
    rule_id='platform_base__depends__ui',
    scope=RuleScope.DEPENDENCY,
    platform_id='platform_base',
    profile_id='gestor_operacional',
    title='Platform Base declara dependencia controlada com ui',
    purpose='Evitar integracao direta invisivel entre platform_base e ui; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='platform_base via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('platform_base', 'ui', 'tudo-para-ia-ui-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-platform-base', 'tudo-para-ia-ui-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia platform_base->ui no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia platform_base->ui no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0464 = HumanControlRule(
    rule_id='public__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='administrador_empresa',
    title='Public Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'administrador_empresa', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'administrador_empresaNeed', 'landingState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0465 = HumanControlRule(
    rule_id='public__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='ceo',
    title='Public Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'ceo', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'ceoNeed', 'landingState', 'documentationGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0466 = HumanControlRule(
    rule_id='public__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='gestor_operacional',
    title='Public Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'gestor_operacional', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'gestor_operacionalNeed', 'landingState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0467 = HumanControlRule(
    rule_id='public__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='suporte',
    title='Public Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'suporte', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'suporteNeed', 'landingState', 'documentationGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0468 = HumanControlRule(
    rule_id='public__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='atendimento_cliente',
    title='Public Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'atendimento_cliente', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'atendimento_clienteNeed', 'landingState', 'documentationGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0469 = HumanControlRule(
    rule_id='public__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='financeiro',
    title='Public Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'financeiro', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'financeiroNeed', 'landingState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0470 = HumanControlRule(
    rule_id='public__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='contador',
    title='Public Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'contador', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'contadorNeed', 'landingState', 'documentationGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0471 = HumanControlRule(
    rule_id='public__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='juridico',
    title='Public Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'juridico', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'juridicoNeed', 'landingState', 'documentationGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0472 = HumanControlRule(
    rule_id='public__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='secretaria',
    title='Public Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'secretaria', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'secretariaNeed', 'landingState', 'documentationGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0473 = HumanControlRule(
    rule_id='public__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='tecnico',
    title='Public Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'tecnico', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'tecnicoNeed', 'landingState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0474 = HumanControlRule(
    rule_id='public__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='usuario_final',
    title='Public Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('docs', 'canonical', 'version', 'hash', 'contract', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'usuario_final', 'documentation', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'usuario_finalNeed', 'landingState', 'documentationGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria documentation', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0475 = HumanControlRule(
    rule_id='public__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='cliente_externo',
    title='Public Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'cliente_externo', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'cliente_externoNeed', 'landingState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0476 = HumanControlRule(
    rule_id='public__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='public',
    profile_id='planejamento_estrategico',
    title='Public Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de Public Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'onboarding', 'public-docs'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('public', 'tudo-para-ia-public-platform', 'planejamento_estrategico', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'planejamento_estrategicoNeed', 'landingState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de public para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0477 = HumanControlRule(
    rule_id='public__surface__landing',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='public',
    profile_id='todos',
    title='Superficie landing de Public Platform passa pelo MCP',
    purpose='Formalizar que a superficie landing de Public Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('landing', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('landing', 'tudo-para-ia-public-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'landing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'todosNeed', 'landingState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover landing de public a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0478 = HumanControlRule(
    rule_id='public__surface__onboarding',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='public',
    profile_id='todos',
    title='Superficie onboarding de Public Platform passa pelo MCP',
    purpose='Formalizar que a superficie onboarding de Public Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('onboarding', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('onboarding', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('onboarding', 'tudo-para-ia-public-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'onboarding ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'todosNeed', 'onboardingState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie onboarding', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover onboarding de public a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0479 = HumanControlRule(
    rule_id='public__surface__public-docs',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='public',
    profile_id='todos',
    title='Superficie public-docs de Public Platform passa pelo MCP',
    purpose='Formalizar que a superficie public-docs de Public Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('public-docs', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('public-docs', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('public-docs', 'tudo-para-ia-public-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'public-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'todosNeed', 'public-docsState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie public-docs', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover public-docs de public a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0480 = HumanControlRule(
    rule_id='public__surface__status',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='public',
    profile_id='todos',
    title='Superficie status de Public Platform passa pelo MCP',
    purpose='Formalizar que a superficie status de Public Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('status', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('status', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('status', 'tudo-para-ia-public-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'status ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'todosNeed', 'statusState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie status', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover status de public a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0481 = HumanControlRule(
    rule_id='public__ceo__landing',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='ceo',
    title='CEO usa landing de Public Platform com verdade rastreavel',
    purpose='Exigir que landing sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'landing', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'landing', 'public', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'landing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'ceoNeed', 'landingState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar landing para ceo em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0482 = HumanControlRule(
    rule_id='public__ceo__onboarding',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='ceo',
    title='CEO usa onboarding de Public Platform com verdade rastreavel',
    purpose='Exigir que onboarding sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('onboarding', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'onboarding', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'onboarding', 'public', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'onboarding ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'ceoNeed', 'onboardingState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie onboarding', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar onboarding para ceo em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0483 = HumanControlRule(
    rule_id='public__ceo__public-docs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='ceo',
    title='CEO usa public-docs de Public Platform com verdade rastreavel',
    purpose='Exigir que public-docs sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('public-docs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'public-docs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'public-docs', 'public', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'public-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'ceoNeed', 'public-docsState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie public-docs', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar public-docs para ceo em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0484 = HumanControlRule(
    rule_id='public__ceo__status',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='ceo',
    title='CEO usa status de Public Platform com verdade rastreavel',
    purpose='Exigir que status sirva CEO com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('status', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'status', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('ceo', 'status', 'public', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'status ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'ceoNeed', 'statusState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie status', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar status para ceo em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0485 = HumanControlRule(
    rule_id='public__atendimento_cliente__landing',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa landing de Public Platform com verdade rastreavel',
    purpose='Exigir que landing sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'landing', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'landing', 'public', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'landing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'atendimento_clienteNeed', 'landingState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar landing para atendimento_cliente em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0486 = HumanControlRule(
    rule_id='public__atendimento_cliente__onboarding',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa onboarding de Public Platform com verdade rastreavel',
    purpose='Exigir que onboarding sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('onboarding', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'onboarding', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'onboarding', 'public', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'onboarding ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'atendimento_clienteNeed', 'onboardingState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie onboarding', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar onboarding para atendimento_cliente em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0487 = HumanControlRule(
    rule_id='public__atendimento_cliente__public-docs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa public-docs de Public Platform com verdade rastreavel',
    purpose='Exigir que public-docs sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('public-docs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'public-docs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'public-docs', 'public', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'public-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'atendimento_clienteNeed', 'public-docsState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie public-docs', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar public-docs para atendimento_cliente em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0488 = HumanControlRule(
    rule_id='public__atendimento_cliente__status',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa status de Public Platform com verdade rastreavel',
    purpose='Exigir que status sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('status', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'status', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'status', 'public', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'status ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'atendimento_clienteNeed', 'statusState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie status', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar status para atendimento_cliente em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0489 = HumanControlRule(
    rule_id='public__usuario_final__landing',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='usuario_final',
    title='Usuario final usa landing de Public Platform com verdade rastreavel',
    purpose='Exigir que landing sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'landing', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'landing', 'public', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'landing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'usuario_finalNeed', 'landingState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar landing para usuario_final em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0490 = HumanControlRule(
    rule_id='public__usuario_final__onboarding',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='usuario_final',
    title='Usuario final usa onboarding de Public Platform com verdade rastreavel',
    purpose='Exigir que onboarding sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('onboarding', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'onboarding', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'onboarding', 'public', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'onboarding ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'usuario_finalNeed', 'onboardingState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie onboarding', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar onboarding para usuario_final em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0491 = HumanControlRule(
    rule_id='public__usuario_final__public-docs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='usuario_final',
    title='Usuario final usa public-docs de Public Platform com verdade rastreavel',
    purpose='Exigir que public-docs sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('public-docs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'public-docs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'public-docs', 'public', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'public-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'usuario_finalNeed', 'public-docsState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie public-docs', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar public-docs para usuario_final em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0492 = HumanControlRule(
    rule_id='public__usuario_final__status',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='usuario_final',
    title='Usuario final usa status de Public Platform com verdade rastreavel',
    purpose='Exigir que status sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('status', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'public', 'status', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'status', 'public', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'status ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'usuario_finalNeed', 'statusState', 'experienceGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie status', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar status para usuario_final em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0493 = HumanControlRule(
    rule_id='public__cliente_externo__landing',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='cliente_externo',
    title='Cliente externo usa landing de Public Platform com verdade rastreavel',
    purpose='Exigir que landing sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('landing', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'landing', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'landing', 'public', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'landing ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'cliente_externoNeed', 'landingState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie landing', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar landing para cliente_externo em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0494 = HumanControlRule(
    rule_id='public__cliente_externo__onboarding',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='cliente_externo',
    title='Cliente externo usa onboarding de Public Platform com verdade rastreavel',
    purpose='Exigir que onboarding sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('onboarding', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'onboarding', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'onboarding', 'public', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'onboarding ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'cliente_externoNeed', 'onboardingState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie onboarding', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar onboarding para cliente_externo em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0495 = HumanControlRule(
    rule_id='public__cliente_externo__public-docs',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='cliente_externo',
    title='Cliente externo usa public-docs de Public Platform com verdade rastreavel',
    purpose='Exigir que public-docs sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('public-docs', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'public-docs', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'public-docs', 'public', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'public-docs ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'cliente_externoNeed', 'public-docsState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie public-docs', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar public-docs para cliente_externo em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0496 = HumanControlRule(
    rule_id='public__cliente_externo__status',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='public',
    profile_id='cliente_externo',
    title='Cliente externo usa status de Public Platform com verdade rastreavel',
    purpose='Exigir que status sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('status', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'public', 'status', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'status', 'public', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'status ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'publicStatus', 'cliente_externoNeed', 'statusState', 'commercialGate'),
    validation_steps=('confirmar que public expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie status', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar status para cliente_externo em public',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0497 = HumanControlRule(
    rule_id='public__depends__business',
    scope=RuleScope.DEPENDENCY,
    platform_id='public',
    profile_id='gestor_operacional',
    title='Public Platform declara dependencia controlada com business',
    purpose='Evitar integracao direta invisivel entre public e business; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('public', 'business', 'tudo-para-ia-business-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-public-platform', 'tudo-para-ia-business-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia public->business no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia public->business no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0498 = HumanControlRule(
    rule_id='public__depends__docs',
    scope=RuleScope.DEPENDENCY,
    platform_id='public',
    profile_id='gestor_operacional',
    title='Public Platform declara dependencia controlada com docs',
    purpose='Evitar integracao direta invisivel entre public e docs; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('public', 'docs', 'tudo-para-ia-docs-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-public-platform', 'tudo-para-ia-docs-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia public->docs no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia public->docs no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0499 = HumanControlRule(
    rule_id='public__depends__ui',
    scope=RuleScope.DEPENDENCY,
    platform_id='public',
    profile_id='gestor_operacional',
    title='Public Platform declara dependencia controlada com ui',
    purpose='Evitar integracao direta invisivel entre public e ui; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='public via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('public', 'ui', 'tudo-para-ia-ui-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-public-platform', 'tudo-para-ia-ui-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia public->ui no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia public->ui no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0500 = HumanControlRule(
    rule_id='stj__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='administrador_empresa',
    title='STJ Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'administrador_empresa', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'administrador_empresaNeed', 'process-queryState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0501 = HumanControlRule(
    rule_id='stj__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='ceo',
    title='STJ Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'ceo', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'ceoNeed', 'process-queryState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0502 = HumanControlRule(
    rule_id='stj__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='gestor_operacional',
    title='STJ Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'gestor_operacional', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'gestor_operacionalNeed', 'process-queryState', 'operationsGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0503 = HumanControlRule(
    rule_id='stj__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='suporte',
    title='STJ Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'suporte', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'suporteNeed', 'process-queryState', 'operationsGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0504 = HumanControlRule(
    rule_id='stj__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='atendimento_cliente',
    title='STJ Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'atendimento_cliente', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'atendimento_clienteNeed', 'process-queryState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0505 = HumanControlRule(
    rule_id='stj__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='financeiro',
    title='STJ Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'financeiro', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'financeiroNeed', 'process-queryState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0506 = HumanControlRule(
    rule_id='stj__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='contador',
    title='STJ Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'contador', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'contadorNeed', 'process-queryState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0507 = HumanControlRule(
    rule_id='stj__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='juridico',
    title='STJ Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'juridico', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'juridicoNeed', 'process-queryState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0508 = HumanControlRule(
    rule_id='stj__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='secretaria',
    title='STJ Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'secretaria', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'secretariaNeed', 'process-queryState', 'operationsGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0509 = HumanControlRule(
    rule_id='stj__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='tecnico',
    title='STJ Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'tecnico', 'operations', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'tecnicoNeed', 'process-queryState', 'operationsGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0510 = HumanControlRule(
    rule_id='stj__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='usuario_final',
    title='STJ Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'usuario_final', 'legal', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'usuario_finalNeed', 'process-queryState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0511 = HumanControlRule(
    rule_id='stj__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='cliente_externo',
    title='STJ Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'cliente_externo', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'cliente_externoNeed', 'process-queryState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0512 = HumanControlRule(
    rule_id='stj__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='stj',
    profile_id='planejamento_estrategico',
    title='STJ Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de STJ Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'monitoring', 'public-documents'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('stj', 'tudo-para-ia-stj-platform', 'planejamento_estrategico', 'commercial', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'planejamento_estrategicoNeed', 'process-queryState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de stj para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0513 = HumanControlRule(
    rule_id='stj__surface__process-query',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='stj',
    profile_id='todos',
    title='Superficie process-query de STJ Platform passa pelo MCP',
    purpose='Formalizar que a superficie process-query de STJ Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('process-query', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('process-query', 'tudo-para-ia-stj-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'process-query ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'todosNeed', 'process-queryState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover process-query de stj a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0514 = HumanControlRule(
    rule_id='stj__surface__monitoring',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='stj',
    profile_id='todos',
    title='Superficie monitoring de STJ Platform passa pelo MCP',
    purpose='Formalizar que a superficie monitoring de STJ Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('monitoring', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('monitoring', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('monitoring', 'tudo-para-ia-stj-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'monitoring ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'todosNeed', 'monitoringState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie monitoring', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover monitoring de stj a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0515 = HumanControlRule(
    rule_id='stj__surface__public-documents',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='stj',
    profile_id='todos',
    title='Superficie public-documents de STJ Platform passa pelo MCP',
    purpose='Formalizar que a superficie public-documents de STJ Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('public-documents', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('public-documents', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('public-documents', 'tudo-para-ia-stj-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'public-documents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'todosNeed', 'public-documentsState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie public-documents', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover public-documents de stj a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0516 = HumanControlRule(
    rule_id='stj__surface__legal-readiness',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='stj',
    profile_id='todos',
    title='Superficie legal-readiness de STJ Platform passa pelo MCP',
    purpose='Formalizar que a superficie legal-readiness de STJ Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('legal-readiness', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('legal-readiness', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('legal-readiness', 'tudo-para-ia-stj-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'legal-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'todosNeed', 'legal-readinessState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie legal-readiness', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover legal-readiness de stj a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0517 = HumanControlRule(
    rule_id='stj__administrador_empresa__process-query',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa process-query de STJ Platform com verdade rastreavel',
    purpose='Exigir que process-query sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'process-query', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'process-query', 'stj', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'process-query ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'administrador_empresaNeed', 'process-queryState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar process-query para administrador_empresa em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0518 = HumanControlRule(
    rule_id='stj__administrador_empresa__monitoring',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa monitoring de STJ Platform com verdade rastreavel',
    purpose='Exigir que monitoring sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('monitoring', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'monitoring', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'monitoring', 'stj', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'monitoring ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'administrador_empresaNeed', 'monitoringState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie monitoring', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar monitoring para administrador_empresa em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0519 = HumanControlRule(
    rule_id='stj__administrador_empresa__public-documents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa public-documents de STJ Platform com verdade rastreavel',
    purpose='Exigir que public-documents sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('public-documents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'public-documents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'public-documents', 'stj', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'public-documents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'administrador_empresaNeed', 'public-documentsState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie public-documents', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar public-documents para administrador_empresa em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0520 = HumanControlRule(
    rule_id='stj__administrador_empresa__legal-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa legal-readiness de STJ Platform com verdade rastreavel',
    purpose='Exigir que legal-readiness sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('legal-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'legal-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'legal-readiness', 'stj', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'legal-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'administrador_empresaNeed', 'legal-readinessState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie legal-readiness', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar legal-readiness para administrador_empresa em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0521 = HumanControlRule(
    rule_id='stj__suporte__process-query',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='suporte',
    title='Equipe de suporte usa process-query de STJ Platform com verdade rastreavel',
    purpose='Exigir que process-query sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'stj', 'process-query', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'process-query', 'stj', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'process-query ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'suporteNeed', 'process-queryState', 'operationsGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar process-query para suporte em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0522 = HumanControlRule(
    rule_id='stj__suporte__monitoring',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='suporte',
    title='Equipe de suporte usa monitoring de STJ Platform com verdade rastreavel',
    purpose='Exigir que monitoring sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('monitoring', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'stj', 'monitoring', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'monitoring', 'stj', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'monitoring ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'suporteNeed', 'monitoringState', 'operationsGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie monitoring', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar monitoring para suporte em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0523 = HumanControlRule(
    rule_id='stj__suporte__public-documents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='suporte',
    title='Equipe de suporte usa public-documents de STJ Platform com verdade rastreavel',
    purpose='Exigir que public-documents sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('public-documents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'stj', 'public-documents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'public-documents', 'stj', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'public-documents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'suporteNeed', 'public-documentsState', 'operationsGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie public-documents', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar public-documents para suporte em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0524 = HumanControlRule(
    rule_id='stj__suporte__legal-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='suporte',
    title='Equipe de suporte usa legal-readiness de STJ Platform com verdade rastreavel',
    purpose='Exigir que legal-readiness sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('legal-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('health', 'readiness', 'smoke', 'runbook', 'status', 'stj', 'legal-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'legal-readiness', 'stj', 'operations', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'legal-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'suporteNeed', 'legal-readinessState', 'operationsGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie legal-readiness', 'registrar evidencia sanitizada da categoria operations', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar legal-readiness para suporte em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0525 = HumanControlRule(
    rule_id='stj__juridico__process-query',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='juridico',
    title='Juridico usa process-query de STJ Platform com verdade rastreavel',
    purpose='Exigir que process-query sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'stj', 'process-query', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'process-query', 'stj', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'process-query ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'juridicoNeed', 'process-queryState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar process-query para juridico em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0526 = HumanControlRule(
    rule_id='stj__juridico__monitoring',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='juridico',
    title='Juridico usa monitoring de STJ Platform com verdade rastreavel',
    purpose='Exigir que monitoring sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('monitoring', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'stj', 'monitoring', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'monitoring', 'stj', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'monitoring ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'juridicoNeed', 'monitoringState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie monitoring', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar monitoring para juridico em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0527 = HumanControlRule(
    rule_id='stj__juridico__public-documents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='juridico',
    title='Juridico usa public-documents de STJ Platform com verdade rastreavel',
    purpose='Exigir que public-documents sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('public-documents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'stj', 'public-documents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'public-documents', 'stj', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'public-documents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'juridicoNeed', 'public-documentsState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie public-documents', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar public-documents para juridico em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0528 = HumanControlRule(
    rule_id='stj__juridico__legal-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='juridico',
    title='Juridico usa legal-readiness de STJ Platform com verdade rastreavel',
    purpose='Exigir que legal-readiness sirva Juridico com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('legal-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('contract', 'policy', 'consent', 'risk', 'evidence', 'stj', 'legal-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('juridico', 'legal-readiness', 'stj', 'legal', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'legal-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'juridicoNeed', 'legal-readinessState', 'legalGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie legal-readiness', 'registrar evidencia sanitizada da categoria legal', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar legal-readiness para juridico em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0529 = HumanControlRule(
    rule_id='stj__cliente_externo__process-query',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='cliente_externo',
    title='Cliente externo usa process-query de STJ Platform com verdade rastreavel',
    purpose='Exigir que process-query sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('process-query', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'process-query', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'process-query', 'stj', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'process-query ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'cliente_externoNeed', 'process-queryState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie process-query', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar process-query para cliente_externo em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0530 = HumanControlRule(
    rule_id='stj__cliente_externo__monitoring',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='cliente_externo',
    title='Cliente externo usa monitoring de STJ Platform com verdade rastreavel',
    purpose='Exigir que monitoring sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('monitoring', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'monitoring', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'monitoring', 'stj', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'monitoring ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'cliente_externoNeed', 'monitoringState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie monitoring', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar monitoring para cliente_externo em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0531 = HumanControlRule(
    rule_id='stj__cliente_externo__public-documents',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='cliente_externo',
    title='Cliente externo usa public-documents de STJ Platform com verdade rastreavel',
    purpose='Exigir que public-documents sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('public-documents', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'public-documents', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'public-documents', 'stj', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'public-documents ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'cliente_externoNeed', 'public-documentsState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie public-documents', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar public-documents para cliente_externo em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0532 = HumanControlRule(
    rule_id='stj__cliente_externo__legal-readiness',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='stj',
    profile_id='cliente_externo',
    title='Cliente externo usa legal-readiness de STJ Platform com verdade rastreavel',
    purpose='Exigir que legal-readiness sirva Cliente externo com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('legal-readiness', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('plan', 'entitlement', 'checkout', 'sellable', 'block', 'stj', 'legal-readiness', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('cliente_externo', 'legal-readiness', 'stj', 'commercial', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'legal-readiness ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'stjStatus', 'cliente_externoNeed', 'legal-readinessState', 'commercialGate'),
    validation_steps=('confirmar que stj expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie legal-readiness', 'registrar evidencia sanitizada da categoria commercial', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar legal-readiness para cliente_externo em stj',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0533 = HumanControlRule(
    rule_id='stj__depends__business',
    scope=RuleScope.DEPENDENCY,
    platform_id='stj',
    profile_id='gestor_operacional',
    title='STJ Platform declara dependencia controlada com business',
    purpose='Evitar integracao direta invisivel entre stj e business; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('stj', 'business', 'tudo-para-ia-business-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-stj-platform', 'tudo-para-ia-business-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia stj->business no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia stj->business no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0534 = HumanControlRule(
    rule_id='stj__depends__integracoes',
    scope=RuleScope.DEPENDENCY,
    platform_id='stj',
    profile_id='gestor_operacional',
    title='STJ Platform declara dependencia controlada com integracoes',
    purpose='Evitar integracao direta invisivel entre stj e integracoes; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('stj', 'integracoes', 'tudo-para-ia-integracoes-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-stj-platform', 'tudo-para-ia-integracoes-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia stj->integracoes no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia stj->integracoes no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0535 = HumanControlRule(
    rule_id='stj__depends__compliance',
    scope=RuleScope.DEPENDENCY,
    platform_id='stj',
    profile_id='gestor_operacional',
    title='STJ Platform declara dependencia controlada com compliance',
    purpose='Evitar integracao direta invisivel entre stj e compliance; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('stj', 'compliance', 'tudo-para-ia-compliance-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-stj-platform', 'tudo-para-ia-compliance-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia stj->compliance no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia stj->compliance no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0536 = HumanControlRule(
    rule_id='stj__depends__customer_ops',
    scope=RuleScope.DEPENDENCY,
    platform_id='stj',
    profile_id='gestor_operacional',
    title='STJ Platform declara dependencia controlada com customer_ops',
    purpose='Evitar integracao direta invisivel entre stj e customer_ops; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='stj via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('stj', 'customer_ops', 'tudo-para-ia-customer-ops-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-stj-platform', 'tudo-para-ia-customer-ops-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia stj->customer_ops no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia stj->customer_ops no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0537 = HumanControlRule(
    rule_id='ui__administrador_empresa__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='administrador_empresa',
    title='UI Platform atende Administrador da empresa por MCP',
    purpose='Garantir que Administrador da empresa receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'administrador_empresa', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'administrador_empresaNeed', 'design-systemState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para administrador_empresa',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0538 = HumanControlRule(
    rule_id='ui__ceo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='ceo',
    title='UI Platform atende CEO por MCP',
    purpose='Garantir que CEO receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'ceo', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'ceoNeed', 'design-systemState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para ceo', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para ceo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0539 = HumanControlRule(
    rule_id='ui__gestor_operacional__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='gestor_operacional',
    title='UI Platform atende Gestor operacional por MCP',
    purpose='Garantir que Gestor operacional receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'gestor_operacional', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'gestor_operacionalNeed', 'design-systemState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para gestor_operacional', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para gestor_operacional',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0540 = HumanControlRule(
    rule_id='ui__suporte__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='suporte',
    title='UI Platform atende Equipe de suporte por MCP',
    purpose='Garantir que Equipe de suporte receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'suporte', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'suporteNeed', 'design-systemState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para suporte',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0541 = HumanControlRule(
    rule_id='ui__atendimento_cliente__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='atendimento_cliente',
    title='UI Platform atende Atendimento ao cliente por MCP',
    purpose='Garantir que Atendimento ao cliente receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('onboarding', 'portal', 'wizard', 'action', 'status', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'atendimento_cliente', 'self_service', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'atendimento_clienteNeed', 'design-systemState', 'self_serviceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria self_service', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para atendimento_cliente',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0542 = HumanControlRule(
    rule_id='ui__financeiro__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='financeiro',
    title='UI Platform atende Financeiro por MCP',
    purpose='Garantir que Financeiro receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'financeiro', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'financeiroNeed', 'design-systemState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para financeiro', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para financeiro',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0543 = HumanControlRule(
    rule_id='ui__contador__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='contador',
    title='UI Platform atende Contador por MCP',
    purpose='Garantir que Contador receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'contador', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'contadorNeed', 'design-systemState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para contador', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para contador',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0544 = HumanControlRule(
    rule_id='ui__juridico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='juridico',
    title='UI Platform atende Juridico por MCP',
    purpose='Garantir que Juridico receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'juridico', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'juridicoNeed', 'design-systemState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para juridico', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para juridico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0545 = HumanControlRule(
    rule_id='ui__secretaria__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='secretaria',
    title='UI Platform atende Secretaria por MCP',
    purpose='Garantir que Secretaria receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('onboarding', 'portal', 'wizard', 'action', 'status', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'secretaria', 'self_service', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'secretariaNeed', 'design-systemState', 'self_serviceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para secretaria', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria self_service', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para secretaria',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0546 = HumanControlRule(
    rule_id='ui__tecnico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='tecnico',
    title='UI Platform atende Tecnico por MCP',
    purpose='Garantir que Tecnico receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'tecnico', 'experience', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'tecnicoNeed', 'design-systemState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para tecnico', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para tecnico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0547 = HumanControlRule(
    rule_id='ui__usuario_final__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='usuario_final',
    title='UI Platform atende Usuario final por MCP',
    purpose='Garantir que Usuario final receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('onboarding', 'portal', 'wizard', 'action', 'status', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'usuario_final', 'self_service', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'usuario_finalNeed', 'design-systemState', 'self_serviceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria self_service', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para usuario_final',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0548 = HumanControlRule(
    rule_id='ui__cliente_externo__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='cliente_externo',
    title='UI Platform atende Cliente externo por MCP',
    purpose='Garantir que Cliente externo receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('onboarding', 'portal', 'wizard', 'action', 'status', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'cliente_externo', 'self_service', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'cliente_externoNeed', 'design-systemState', 'self_serviceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para cliente_externo', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria self_service', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para cliente_externo',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0549 = HumanControlRule(
    rule_id='ui__planejamento_estrategico__mcp',
    scope=RuleScope.PROFILE_PLATFORM,
    platform_id='ui',
    profile_id='planejamento_estrategico',
    title='UI Platform atende Planejamento estrategico por MCP',
    purpose='Garantir que Planejamento estrategico receba leitura humana de UI Platform pela mesma fonte administrativa que o GPT explica.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'screen-contract', 'PWA'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'sameSource', 'panelReady', 'gptExplainable'),
    evidence_terms=('ui', 'tudo-para-ia-ui-platform', 'planejamento_estrategico', 'governance', 'admin_ui', 'sameSource', 'panelReady', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'planejamento_estrategicoNeed', 'design-systemState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para planejamento_estrategico', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='criar ou validar superficie MCP de ui para planejamento_estrategico',
    priority='media',
    generated_from='platform_profile_catalog',
)

RULE_0550 = HumanControlRule(
    rule_id='ui__surface__design-system',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='ui',
    profile_id='todos',
    title='Superficie design-system de UI Platform passa pelo MCP',
    purpose='Formalizar que a superficie design-system de UI Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('design-system', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('design-system', 'tudo-para-ia-ui-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'design-system ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'todosNeed', 'design-systemState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover design-system de ui a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0551 = HumanControlRule(
    rule_id='ui__surface__screen-contract',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='ui',
    profile_id='todos',
    title='Superficie screen-contract de UI Platform passa pelo MCP',
    purpose='Formalizar que a superficie screen-contract de UI Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('screen-contract', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('screen-contract', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('screen-contract', 'tudo-para-ia-ui-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'screen-contract ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'todosNeed', 'screen-contractState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie screen-contract', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover screen-contract de ui a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0552 = HumanControlRule(
    rule_id='ui__surface__pwa',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='ui',
    profile_id='todos',
    title='Superficie PWA de UI Platform passa pelo MCP',
    purpose='Formalizar que a superficie PWA de UI Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('PWA', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('PWA', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('PWA', 'tudo-para-ia-ui-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'PWA ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'todosNeed', 'pwaState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie PWA', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover PWA de ui a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0553 = HumanControlRule(
    rule_id='ui__surface__panelready',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='ui',
    profile_id='todos',
    title='Superficie panelReady de UI Platform passa pelo MCP',
    purpose='Formalizar que a superficie panelReady de UI Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('panelReady', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('panelReady', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('panelReady', 'tudo-para-ia-ui-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'panelReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'todosNeed', 'panelreadyState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie panelReady', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover panelReady de ui a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0554 = HumanControlRule(
    rule_id='ui__surface__samesource',
    scope=RuleScope.PLATFORM_SURFACE,
    platform_id='ui',
    profile_id='todos',
    title='Superficie sameSource de UI Platform passa pelo MCP',
    purpose='Formalizar que a superficie sameSource de UI Platform possui dados, diagnostico, evidencia e acao controlados pelo MCP.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sameSource', 'admin_ui', 'screenData', 'screenDiagnostic'),
    success_markers=('sameSource', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'sameSource', 'panelReady'),
    evidence_terms=('sameSource', 'tudo-para-ia-ui-platform', 'admin_ui', 'screen', 'readiness', 'evidence'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sameSource ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'todosNeed', 'samesourceState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para todos', 'comparar sourceHash/sameSource para superficie sameSource', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='promover sameSource de ui a painel MCP same-source',
    priority='media',
    generated_from='platform_surface_catalog',
)

RULE_0555 = HumanControlRule(
    rule_id='ui__administrador_empresa__design-system',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa design-system de UI Platform com verdade rastreavel',
    purpose='Exigir que design-system sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'design-system', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'design-system', 'ui', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'design-system ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'administrador_empresaNeed', 'design-systemState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar design-system para administrador_empresa em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0556 = HumanControlRule(
    rule_id='ui__administrador_empresa__screen-contract',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa screen-contract de UI Platform com verdade rastreavel',
    purpose='Exigir que screen-contract sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('screen-contract', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'screen-contract', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'screen-contract', 'ui', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'screen-contract ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'administrador_empresaNeed', 'screen-contractState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie screen-contract', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar screen-contract para administrador_empresa em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0557 = HumanControlRule(
    rule_id='ui__administrador_empresa__pwa',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa PWA de UI Platform com verdade rastreavel',
    purpose='Exigir que PWA sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('PWA', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'PWA', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'PWA', 'ui', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'PWA ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'administrador_empresaNeed', 'pwaState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie PWA', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar PWA para administrador_empresa em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0558 = HumanControlRule(
    rule_id='ui__administrador_empresa__panelready',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa panelReady de UI Platform com verdade rastreavel',
    purpose='Exigir que panelReady sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('panelReady', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'panelReady', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'panelReady', 'ui', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'panelReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'administrador_empresaNeed', 'panelreadyState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie panelReady', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar panelReady para administrador_empresa em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0559 = HumanControlRule(
    rule_id='ui__administrador_empresa__samesource',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='administrador_empresa',
    title='Administrador da empresa usa sameSource de UI Platform com verdade rastreavel',
    purpose='Exigir que sameSource sirva Administrador da empresa com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sameSource', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('audit', 'trace', 'policy', 'schema', 'release', 'ui', 'sameSource', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('administrador_empresa', 'sameSource', 'ui', 'governance', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sameSource ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'administrador_empresaNeed', 'samesourceState', 'governanceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para administrador_empresa', 'comparar sourceHash/sameSource para superficie sameSource', 'registrar evidencia sanitizada da categoria governance', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sameSource para administrador_empresa em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0560 = HumanControlRule(
    rule_id='ui__suporte__design-system',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='suporte',
    title='Equipe de suporte usa design-system de UI Platform com verdade rastreavel',
    purpose='Exigir que design-system sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'design-system', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'design-system', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'design-system ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'suporteNeed', 'design-systemState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar design-system para suporte em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0561 = HumanControlRule(
    rule_id='ui__suporte__screen-contract',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='suporte',
    title='Equipe de suporte usa screen-contract de UI Platform com verdade rastreavel',
    purpose='Exigir que screen-contract sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('screen-contract', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'screen-contract', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'screen-contract', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'screen-contract ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'suporteNeed', 'screen-contractState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie screen-contract', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar screen-contract para suporte em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0562 = HumanControlRule(
    rule_id='ui__suporte__pwa',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='suporte',
    title='Equipe de suporte usa PWA de UI Platform com verdade rastreavel',
    purpose='Exigir que PWA sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('PWA', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'PWA', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'PWA', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'PWA ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'suporteNeed', 'pwaState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie PWA', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar PWA para suporte em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0563 = HumanControlRule(
    rule_id='ui__suporte__panelready',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='suporte',
    title='Equipe de suporte usa panelReady de UI Platform com verdade rastreavel',
    purpose='Exigir que panelReady sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('panelReady', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'panelReady', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'panelReady', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'panelReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'suporteNeed', 'panelreadyState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie panelReady', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar panelReady para suporte em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0564 = HumanControlRule(
    rule_id='ui__suporte__samesource',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='suporte',
    title='Equipe de suporte usa sameSource de UI Platform com verdade rastreavel',
    purpose='Exigir que sameSource sirva Equipe de suporte com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sameSource', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'sameSource', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('suporte', 'sameSource', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sameSource ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'suporteNeed', 'samesourceState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para suporte', 'comparar sourceHash/sameSource para superficie sameSource', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sameSource para suporte em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0565 = HumanControlRule(
    rule_id='ui__atendimento_cliente__design-system',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa design-system de UI Platform com verdade rastreavel',
    purpose='Exigir que design-system sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'design-system', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'design-system', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'design-system ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'atendimento_clienteNeed', 'design-systemState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar design-system para atendimento_cliente em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0566 = HumanControlRule(
    rule_id='ui__atendimento_cliente__screen-contract',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa screen-contract de UI Platform com verdade rastreavel',
    purpose='Exigir que screen-contract sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('screen-contract', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'screen-contract', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'screen-contract', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'screen-contract ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'atendimento_clienteNeed', 'screen-contractState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie screen-contract', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar screen-contract para atendimento_cliente em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0567 = HumanControlRule(
    rule_id='ui__atendimento_cliente__pwa',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa PWA de UI Platform com verdade rastreavel',
    purpose='Exigir que PWA sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('PWA', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'PWA', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'PWA', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'PWA ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'atendimento_clienteNeed', 'pwaState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie PWA', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar PWA para atendimento_cliente em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0568 = HumanControlRule(
    rule_id='ui__atendimento_cliente__panelready',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa panelReady de UI Platform com verdade rastreavel',
    purpose='Exigir que panelReady sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('panelReady', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'panelReady', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'panelReady', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'panelReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'atendimento_clienteNeed', 'panelreadyState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie panelReady', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar panelReady para atendimento_cliente em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0569 = HumanControlRule(
    rule_id='ui__atendimento_cliente__samesource',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='atendimento_cliente',
    title='Atendimento ao cliente usa sameSource de UI Platform com verdade rastreavel',
    purpose='Exigir que sameSource sirva Atendimento ao cliente com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sameSource', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'sameSource', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('atendimento_cliente', 'sameSource', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sameSource ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'atendimento_clienteNeed', 'samesourceState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para atendimento_cliente', 'comparar sourceHash/sameSource para superficie sameSource', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sameSource para atendimento_cliente em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0570 = HumanControlRule(
    rule_id='ui__usuario_final__design-system',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='usuario_final',
    title='Usuario final usa design-system de UI Platform com verdade rastreavel',
    purpose='Exigir que design-system sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('design-system', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'design-system', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'design-system', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'design-system ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'usuario_finalNeed', 'design-systemState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie design-system', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar design-system para usuario_final em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0571 = HumanControlRule(
    rule_id='ui__usuario_final__screen-contract',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='usuario_final',
    title='Usuario final usa screen-contract de UI Platform com verdade rastreavel',
    purpose='Exigir que screen-contract sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('screen-contract', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'screen-contract', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'screen-contract', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'screen-contract ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'usuario_finalNeed', 'screen-contractState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie screen-contract', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar screen-contract para usuario_final em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0572 = HumanControlRule(
    rule_id='ui__usuario_final__pwa',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='usuario_final',
    title='Usuario final usa PWA de UI Platform com verdade rastreavel',
    purpose='Exigir que PWA sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('PWA', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'PWA', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'PWA', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'PWA ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'usuario_finalNeed', 'pwaState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie PWA', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar PWA para usuario_final em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0573 = HumanControlRule(
    rule_id='ui__usuario_final__panelready',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='usuario_final',
    title='Usuario final usa panelReady de UI Platform com verdade rastreavel',
    purpose='Exigir que panelReady sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('panelReady', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'panelReady', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'panelReady', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'panelReady ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'usuario_finalNeed', 'panelreadyState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie panelReady', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar panelReady para usuario_final em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0574 = HumanControlRule(
    rule_id='ui__usuario_final__samesource',
    scope=RuleScope.PROFILE_SURFACE,
    platform_id='ui',
    profile_id='usuario_final',
    title='Usuario final usa sameSource de UI Platform com verdade rastreavel',
    purpose='Exigir que sameSource sirva Usuario final com payload sanitizado, fonte unica MCP e criterio humano de pronto.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('sameSource', 'admin_ui', 'screenReport', 'screenEvidence'),
    success_markers=('screen', 'panelReady', 'sameSource', 'sourceHash', 'renderedState', 'ui', 'sameSource', 'sourceRecordsHash', 'humanNextAction'),
    evidence_terms=('usuario_final', 'sameSource', 'ui', 'experience', 'screenData', 'sameSource', 'traceId', 'auditId'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only', 'sameSource ausente'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'uiStatus', 'usuario_finalNeed', 'samesourceState', 'experienceGate'),
    validation_steps=('confirmar que ui expoe dados por MCP antes de qualquer painel paralelo', 'validar campos de transito MCP para usuario_final', 'comparar sourceHash/sameSource para superficie sameSource', 'registrar evidencia sanitizada da categoria experience', 'registrar pendencia real se a validacao depender de credencial ou decisao externa'),
    next_order_hint='validar sameSource para usuario_final em ui',
    priority='alta',
    generated_from='profile_surface_catalog',
)

RULE_0575 = HumanControlRule(
    rule_id='ui__depends__mcps',
    scope=RuleScope.DEPENDENCY,
    platform_id='ui',
    profile_id='gestor_operacional',
    title='UI Platform declara dependencia controlada com mcps',
    purpose='Evitar integracao direta invisivel entre ui e mcps; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('ui', 'mcps', 'tudo-para-ia-mcps-internos-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-ui-platform', 'tudo-para-ia-mcps-internos-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia ui->mcps no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia ui->mcps no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0576 = HumanControlRule(
    rule_id='ui__depends__docs',
    scope=RuleScope.DEPENDENCY,
    platform_id='ui',
    profile_id='gestor_operacional',
    title='UI Platform declara dependencia controlada com docs',
    purpose='Evitar integracao direta invisivel entre ui e docs; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('ui', 'docs', 'tudo-para-ia-docs-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-ui-platform', 'tudo-para-ia-docs-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia ui->docs no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia ui->docs no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0577 = HumanControlRule(
    rule_id='ui__depends__business',
    scope=RuleScope.DEPENDENCY,
    platform_id='ui',
    profile_id='gestor_operacional',
    title='UI Platform declara dependencia controlada com business',
    purpose='Evitar integracao direta invisivel entre ui e business; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('ui', 'business', 'tudo-para-ia-business-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-ui-platform', 'tudo-para-ia-business-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia ui->business no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia ui->business no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0578 = HumanControlRule(
    rule_id='ui__depends__identity',
    scope=RuleScope.DEPENDENCY,
    platform_id='ui',
    profile_id='gestor_operacional',
    title='UI Platform declara dependencia controlada com identity',
    purpose='Evitar integracao direta invisivel entre ui e identity; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('ui', 'identity', 'tudo-para-ia-identity-platform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-ui-platform', 'tudo-para-ia-identity-platform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia ui->identity no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia ui->identity no MCP central',
    priority='alta',
    generated_from='platform_dependency_catalog',
)

RULE_0579 = HumanControlRule(
    rule_id='ui__depends__integracoes',
    scope=RuleScope.DEPENDENCY,
    platform_id='ui',
    profile_id='gestor_operacional',
    title='UI Platform declara dependencia controlada com integracoes',
    purpose='Evitar integracao direta invisivel entre ui e integracoes; todo transito precisa passar pelo MCP com trace e audit.',
    source_of_truth='ui via tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'dependencyGraph', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('ui', 'integracoes', 'tudo-para-ia-integracoes-plataform', 'origin', 'destination', 'traceId', 'auditId', 'sameSource'),
    evidence_terms=('tudo-para-ia-ui-platform', 'tudo-para-ia-integracoes-plataform', 'related_platforms', 'dependency', 'mcp', 'audit'),
    negative_terms=('blocked', 'unsupported', 'missing', 'needs_token', 'catalogOnly', 'catalog_only'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('origin', 'destination', 'relationType', 'sourcePayloadHash', 'sourceRecordsHash', 'permission', 'result', 'traceId', 'auditId'),
    validation_steps=('listar dependencia ui->integracoes no grafo humano', 'validar que a dependencia possui payload hash e records hash', 'registrar auditId e traceId no relatorio humano', 'criar OS se a dependencia exigir chamada direta fora do MCP'),
    next_order_hint='consolidar dependencia ui->integracoes no MCP central',
    priority='media',
    generated_from='platform_dependency_catalog',
)

RULE_0580 = HumanControlRule(
    rule_id='mais_humana__identity__canonical-name',
    scope=RuleScope.CANONICAL_IDENTITY,
    platform_id='mcps',
    profile_id='administrador_empresa',
    title='Nome canonico Mais Humana Platform',
    purpose='Registrar nome canonico tudo-para-ia-mais-humana-platform sem apagar o historico do repo materializado.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('tudo-para-ia-mais-humana', 'tudo-para-ia-mais-humana-platform', 'tudo-para-ia-mais-humana-plataform', 'admin/tudo-para-ia-mais-humana'),
    evidence_terms=('tudo-para-ia-mais-humana', 'tudo-para-ia-mais-humana-platform', 'tudo-para-ia-mais-humana-plataform', 'admin/tudo-para-ia-mais-humana', 'central-de-ordem-de-servico', 'controle-semantico.sqlite'),
    negative_terms=('nome antigo sem alias', 'conexao direta sem MCP', 'fonte paralela'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('currentProjectId', 'canonicalProjectId', 'controlPlaneId', 'uiSupportPlatformId', 'renameStatus', 'permissionStatus', 'auditId', 'traceId'),
    validation_steps=('confirmar README com nome canonico e alias historico', 'confirmar SQLite com identidade canonica e dependencia MCP', 'confirmar que relatorios humanos citam MCP como caminho unico'),
    next_order_hint='executar renome institucional quando houver permissao de repositorio e janela segura',
    priority='alta',
    generated_from='canonical_identity_order_0027',
)

RULE_0581 = HumanControlRule(
    rule_id='mais_humana__identity__mcp-only',
    scope=RuleScope.CANONICAL_IDENTITY,
    platform_id='mcps',
    profile_id='administrador_empresa',
    title='Administracao somente pelo MCP',
    purpose='Impedir que a Mais Humana use atalhos diretos entre plataformas fora da tudo-para-ia-mcps-internos-plataform.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('origin', 'destination', 'tool', 'payload', 'actor', 'permission', 'result', 'traceId', 'auditId', 'timestamp'),
    evidence_terms=('origin', 'destination', 'tool', 'payload', 'actor', 'permission', 'result', 'traceId', 'auditId', 'timestamp', 'central-de-ordem-de-servico', 'controle-semantico.sqlite'),
    negative_terms=('nome antigo sem alias', 'conexao direta sem MCP', 'fonte paralela'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('currentProjectId', 'canonicalProjectId', 'controlPlaneId', 'uiSupportPlatformId', 'renameStatus', 'permissionStatus', 'auditId', 'traceId'),
    validation_steps=('confirmar README com nome canonico e alias historico', 'confirmar SQLite com identidade canonica e dependencia MCP', 'confirmar que relatorios humanos citam MCP como caminho unico'),
    next_order_hint='executar renome institucional quando houver permissao de repositorio e janela segura',
    priority='alta',
    generated_from='canonical_identity_order_0027',
)

RULE_0582 = HumanControlRule(
    rule_id='mais_humana__identity__ui-support',
    scope=RuleScope.CANONICAL_IDENTITY,
    platform_id='mcps',
    profile_id='administrador_empresa',
    title='UI como apoio visual, nao fonte paralela',
    purpose='Formalizar que a UI renderiza contratos e dados vindos do MCP, sem inventar verdade operacional.',
    source_of_truth='tudo-para-ia-mcps-internos-plataform',
    required_surfaces=('admin_ui', 'screenDiagnostic', 'screenEvidence'),
    success_markers=('ui', 'screenData', 'sameSource', 'panelReady', 'sourceRecordsHash'),
    evidence_terms=('ui', 'screenData', 'sameSource', 'panelReady', 'sourceRecordsHash', 'central-de-ordem-de-servico', 'controle-semantico.sqlite'),
    negative_terms=('nome antigo sem alias', 'conexao direta sem MCP', 'fonte paralela'),
    mcp_transit_fields=MCP_TRANSIT_FIELDS,
    expected_payload_fields=('currentProjectId', 'canonicalProjectId', 'controlPlaneId', 'uiSupportPlatformId', 'renameStatus', 'permissionStatus', 'auditId', 'traceId'),
    validation_steps=('confirmar README com nome canonico e alias historico', 'confirmar SQLite com identidade canonica e dependencia MCP', 'confirmar que relatorios humanos citam MCP como caminho unico'),
    next_order_hint='executar renome institucional quando houver permissao de repositorio e janela segura',
    priority='alta',
    generated_from='canonical_identity_order_0027',
)

RULES: tuple[HumanControlRule, ...] = (
    RULE_0001,
    RULE_0002,
    RULE_0003,
    RULE_0004,
    RULE_0005,
    RULE_0006,
    RULE_0007,
    RULE_0008,
    RULE_0009,
    RULE_0010,
    RULE_0011,
    RULE_0012,
    RULE_0013,
    RULE_0014,
    RULE_0015,
    RULE_0016,
    RULE_0017,
    RULE_0018,
    RULE_0019,
    RULE_0020,
    RULE_0021,
    RULE_0022,
    RULE_0023,
    RULE_0024,
    RULE_0025,
    RULE_0026,
    RULE_0027,
    RULE_0028,
    RULE_0029,
    RULE_0030,
    RULE_0031,
    RULE_0032,
    RULE_0033,
    RULE_0034,
    RULE_0035,
    RULE_0036,
    RULE_0037,
    RULE_0038,
    RULE_0039,
    RULE_0040,
    RULE_0041,
    RULE_0042,
    RULE_0043,
    RULE_0044,
    RULE_0045,
    RULE_0046,
    RULE_0047,
    RULE_0048,
    RULE_0049,
    RULE_0050,
    RULE_0051,
    RULE_0052,
    RULE_0053,
    RULE_0054,
    RULE_0055,
    RULE_0056,
    RULE_0057,
    RULE_0058,
    RULE_0059,
    RULE_0060,
    RULE_0061,
    RULE_0062,
    RULE_0063,
    RULE_0064,
    RULE_0065,
    RULE_0066,
    RULE_0067,
    RULE_0068,
    RULE_0069,
    RULE_0070,
    RULE_0071,
    RULE_0072,
    RULE_0073,
    RULE_0074,
    RULE_0075,
    RULE_0076,
    RULE_0077,
    RULE_0078,
    RULE_0079,
    RULE_0080,
    RULE_0081,
    RULE_0082,
    RULE_0083,
    RULE_0084,
    RULE_0085,
    RULE_0086,
    RULE_0087,
    RULE_0088,
    RULE_0089,
    RULE_0090,
    RULE_0091,
    RULE_0092,
    RULE_0093,
    RULE_0094,
    RULE_0095,
    RULE_0096,
    RULE_0097,
    RULE_0098,
    RULE_0099,
    RULE_0100,
    RULE_0101,
    RULE_0102,
    RULE_0103,
    RULE_0104,
    RULE_0105,
    RULE_0106,
    RULE_0107,
    RULE_0108,
    RULE_0109,
    RULE_0110,
    RULE_0111,
    RULE_0112,
    RULE_0113,
    RULE_0114,
    RULE_0115,
    RULE_0116,
    RULE_0117,
    RULE_0118,
    RULE_0119,
    RULE_0120,
    RULE_0121,
    RULE_0122,
    RULE_0123,
    RULE_0124,
    RULE_0125,
    RULE_0126,
    RULE_0127,
    RULE_0128,
    RULE_0129,
    RULE_0130,
    RULE_0131,
    RULE_0132,
    RULE_0133,
    RULE_0134,
    RULE_0135,
    RULE_0136,
    RULE_0137,
    RULE_0138,
    RULE_0139,
    RULE_0140,
    RULE_0141,
    RULE_0142,
    RULE_0143,
    RULE_0144,
    RULE_0145,
    RULE_0146,
    RULE_0147,
    RULE_0148,
    RULE_0149,
    RULE_0150,
    RULE_0151,
    RULE_0152,
    RULE_0153,
    RULE_0154,
    RULE_0155,
    RULE_0156,
    RULE_0157,
    RULE_0158,
    RULE_0159,
    RULE_0160,
    RULE_0161,
    RULE_0162,
    RULE_0163,
    RULE_0164,
    RULE_0165,
    RULE_0166,
    RULE_0167,
    RULE_0168,
    RULE_0169,
    RULE_0170,
    RULE_0171,
    RULE_0172,
    RULE_0173,
    RULE_0174,
    RULE_0175,
    RULE_0176,
    RULE_0177,
    RULE_0178,
    RULE_0179,
    RULE_0180,
    RULE_0181,
    RULE_0182,
    RULE_0183,
    RULE_0184,
    RULE_0185,
    RULE_0186,
    RULE_0187,
    RULE_0188,
    RULE_0189,
    RULE_0190,
    RULE_0191,
    RULE_0192,
    RULE_0193,
    RULE_0194,
    RULE_0195,
    RULE_0196,
    RULE_0197,
    RULE_0198,
    RULE_0199,
    RULE_0200,
    RULE_0201,
    RULE_0202,
    RULE_0203,
    RULE_0204,
    RULE_0205,
    RULE_0206,
    RULE_0207,
    RULE_0208,
    RULE_0209,
    RULE_0210,
    RULE_0211,
    RULE_0212,
    RULE_0213,
    RULE_0214,
    RULE_0215,
    RULE_0216,
    RULE_0217,
    RULE_0218,
    RULE_0219,
    RULE_0220,
    RULE_0221,
    RULE_0222,
    RULE_0223,
    RULE_0224,
    RULE_0225,
    RULE_0226,
    RULE_0227,
    RULE_0228,
    RULE_0229,
    RULE_0230,
    RULE_0231,
    RULE_0232,
    RULE_0233,
    RULE_0234,
    RULE_0235,
    RULE_0236,
    RULE_0237,
    RULE_0238,
    RULE_0239,
    RULE_0240,
    RULE_0241,
    RULE_0242,
    RULE_0243,
    RULE_0244,
    RULE_0245,
    RULE_0246,
    RULE_0247,
    RULE_0248,
    RULE_0249,
    RULE_0250,
    RULE_0251,
    RULE_0252,
    RULE_0253,
    RULE_0254,
    RULE_0255,
    RULE_0256,
    RULE_0257,
    RULE_0258,
    RULE_0259,
    RULE_0260,
    RULE_0261,
    RULE_0262,
    RULE_0263,
    RULE_0264,
    RULE_0265,
    RULE_0266,
    RULE_0267,
    RULE_0268,
    RULE_0269,
    RULE_0270,
    RULE_0271,
    RULE_0272,
    RULE_0273,
    RULE_0274,
    RULE_0275,
    RULE_0276,
    RULE_0277,
    RULE_0278,
    RULE_0279,
    RULE_0280,
    RULE_0281,
    RULE_0282,
    RULE_0283,
    RULE_0284,
    RULE_0285,
    RULE_0286,
    RULE_0287,
    RULE_0288,
    RULE_0289,
    RULE_0290,
    RULE_0291,
    RULE_0292,
    RULE_0293,
    RULE_0294,
    RULE_0295,
    RULE_0296,
    RULE_0297,
    RULE_0298,
    RULE_0299,
    RULE_0300,
    RULE_0301,
    RULE_0302,
    RULE_0303,
    RULE_0304,
    RULE_0305,
    RULE_0306,
    RULE_0307,
    RULE_0308,
    RULE_0309,
    RULE_0310,
    RULE_0311,
    RULE_0312,
    RULE_0313,
    RULE_0314,
    RULE_0315,
    RULE_0316,
    RULE_0317,
    RULE_0318,
    RULE_0319,
    RULE_0320,
    RULE_0321,
    RULE_0322,
    RULE_0323,
    RULE_0324,
    RULE_0325,
    RULE_0326,
    RULE_0327,
    RULE_0328,
    RULE_0329,
    RULE_0330,
    RULE_0331,
    RULE_0332,
    RULE_0333,
    RULE_0334,
    RULE_0335,
    RULE_0336,
    RULE_0337,
    RULE_0338,
    RULE_0339,
    RULE_0340,
    RULE_0341,
    RULE_0342,
    RULE_0343,
    RULE_0344,
    RULE_0345,
    RULE_0346,
    RULE_0347,
    RULE_0348,
    RULE_0349,
    RULE_0350,
    RULE_0351,
    RULE_0352,
    RULE_0353,
    RULE_0354,
    RULE_0355,
    RULE_0356,
    RULE_0357,
    RULE_0358,
    RULE_0359,
    RULE_0360,
    RULE_0361,
    RULE_0362,
    RULE_0363,
    RULE_0364,
    RULE_0365,
    RULE_0366,
    RULE_0367,
    RULE_0368,
    RULE_0369,
    RULE_0370,
    RULE_0371,
    RULE_0372,
    RULE_0373,
    RULE_0374,
    RULE_0375,
    RULE_0376,
    RULE_0377,
    RULE_0378,
    RULE_0379,
    RULE_0380,
    RULE_0381,
    RULE_0382,
    RULE_0383,
    RULE_0384,
    RULE_0385,
    RULE_0386,
    RULE_0387,
    RULE_0388,
    RULE_0389,
    RULE_0390,
    RULE_0391,
    RULE_0392,
    RULE_0393,
    RULE_0394,
    RULE_0395,
    RULE_0396,
    RULE_0397,
    RULE_0398,
    RULE_0399,
    RULE_0400,
    RULE_0401,
    RULE_0402,
    RULE_0403,
    RULE_0404,
    RULE_0405,
    RULE_0406,
    RULE_0407,
    RULE_0408,
    RULE_0409,
    RULE_0410,
    RULE_0411,
    RULE_0412,
    RULE_0413,
    RULE_0414,
    RULE_0415,
    RULE_0416,
    RULE_0417,
    RULE_0418,
    RULE_0419,
    RULE_0420,
    RULE_0421,
    RULE_0422,
    RULE_0423,
    RULE_0424,
    RULE_0425,
    RULE_0426,
    RULE_0427,
    RULE_0428,
    RULE_0429,
    RULE_0430,
    RULE_0431,
    RULE_0432,
    RULE_0433,
    RULE_0434,
    RULE_0435,
    RULE_0436,
    RULE_0437,
    RULE_0438,
    RULE_0439,
    RULE_0440,
    RULE_0441,
    RULE_0442,
    RULE_0443,
    RULE_0444,
    RULE_0445,
    RULE_0446,
    RULE_0447,
    RULE_0448,
    RULE_0449,
    RULE_0450,
    RULE_0451,
    RULE_0452,
    RULE_0453,
    RULE_0454,
    RULE_0455,
    RULE_0456,
    RULE_0457,
    RULE_0458,
    RULE_0459,
    RULE_0460,
    RULE_0461,
    RULE_0462,
    RULE_0463,
    RULE_0464,
    RULE_0465,
    RULE_0466,
    RULE_0467,
    RULE_0468,
    RULE_0469,
    RULE_0470,
    RULE_0471,
    RULE_0472,
    RULE_0473,
    RULE_0474,
    RULE_0475,
    RULE_0476,
    RULE_0477,
    RULE_0478,
    RULE_0479,
    RULE_0480,
    RULE_0481,
    RULE_0482,
    RULE_0483,
    RULE_0484,
    RULE_0485,
    RULE_0486,
    RULE_0487,
    RULE_0488,
    RULE_0489,
    RULE_0490,
    RULE_0491,
    RULE_0492,
    RULE_0493,
    RULE_0494,
    RULE_0495,
    RULE_0496,
    RULE_0497,
    RULE_0498,
    RULE_0499,
    RULE_0500,
    RULE_0501,
    RULE_0502,
    RULE_0503,
    RULE_0504,
    RULE_0505,
    RULE_0506,
    RULE_0507,
    RULE_0508,
    RULE_0509,
    RULE_0510,
    RULE_0511,
    RULE_0512,
    RULE_0513,
    RULE_0514,
    RULE_0515,
    RULE_0516,
    RULE_0517,
    RULE_0518,
    RULE_0519,
    RULE_0520,
    RULE_0521,
    RULE_0522,
    RULE_0523,
    RULE_0524,
    RULE_0525,
    RULE_0526,
    RULE_0527,
    RULE_0528,
    RULE_0529,
    RULE_0530,
    RULE_0531,
    RULE_0532,
    RULE_0533,
    RULE_0534,
    RULE_0535,
    RULE_0536,
    RULE_0537,
    RULE_0538,
    RULE_0539,
    RULE_0540,
    RULE_0541,
    RULE_0542,
    RULE_0543,
    RULE_0544,
    RULE_0545,
    RULE_0546,
    RULE_0547,
    RULE_0548,
    RULE_0549,
    RULE_0550,
    RULE_0551,
    RULE_0552,
    RULE_0553,
    RULE_0554,
    RULE_0555,
    RULE_0556,
    RULE_0557,
    RULE_0558,
    RULE_0559,
    RULE_0560,
    RULE_0561,
    RULE_0562,
    RULE_0563,
    RULE_0564,
    RULE_0565,
    RULE_0566,
    RULE_0567,
    RULE_0568,
    RULE_0569,
    RULE_0570,
    RULE_0571,
    RULE_0572,
    RULE_0573,
    RULE_0574,
    RULE_0575,
    RULE_0576,
    RULE_0577,
    RULE_0578,
    RULE_0579,
    RULE_0580,
    RULE_0581,
    RULE_0582,
)

RULES_BY_PLATFORM: dict[str, tuple[HumanControlRule, ...]] = {
    platform_id: tuple(rule for rule in RULES if rule.platform_id == platform_id)
    for platform_id in sorted({rule.platform_id for rule in RULES})
}

RULES_BY_PROFILE: dict[str, tuple[HumanControlRule, ...]] = {
    profile_id: tuple(rule for rule in RULES if rule.profile_id == profile_id)
    for profile_id in sorted({rule.profile_id for rule in RULES})
}

def rule_ids() -> tuple[str, ...]:
    return tuple(rule.rule_id for rule in RULES)

def rules_for_platform(platform_id: str) -> tuple[HumanControlRule, ...]:
    return RULES_BY_PLATFORM.get(platform_id, ())

def rules_for_profile(profile_id: str) -> tuple[HumanControlRule, ...]:
    return RULES_BY_PROFILE.get(profile_id, ())
