diff --git a/tests/invariants/cascata-lgpd-nao-encolhe.test.ts b/tests/invariants/cascata-lgpd-nao-encolhe.test.ts
index d3136c762..5bccd05d4 100644
--- a/tests/invariants/cascata-lgpd-nao-encolhe.test.ts
+++ b/tests/invariants/cascata-lgpd-nao-encolhe.test.ts
@@ -121,0 +122,6 @@ const TABELAS_NA_CASCATA = [
+  // 0772 (#3316) — a fila de proposta de campo do card lida num documento. O
+  // passo 5b redige `trecho`, `valor_proposto` e `valor_anterior` (o mesmo
+  // tratamento do `custom_fields` do próprio negócio, passo 5): campo, status
+  // e decisão permanecem, o conteúdo identificável sai. Alcança por vínculo do
+  // lead com o contato (crm_leads + crm_lead_links), como os passos 4 e 5.
+  "lead_field_proposals",
diff --git a/tests/invariants/rls-isolation.test.ts b/tests/invariants/rls-isolation.test.ts
index 13b0fb0cf..3a49cfc2c 100644
--- a/tests/invariants/rls-isolation.test.ts
+++ b/tests/invariants/rls-isolation.test.ts
@@ -292,0 +293,13 @@ beforeAll(() => {
+        -- 0772 (#3316) — a fila de proposta de campo do card lida num documento:
+        -- o trecho e os valores sao o dado que a IA leu sobre a PESSOA, e a
+        -- linha existe so ate alguem confirmar em revisao. Os DOIS tenants
+        -- recebem uma linha real (o cross-tenant de org A lendo org B vale
+        -- porque org B tambem tem, nao porque esta vazia).
+        if not exists (select 1 from public.lead_field_proposals where organization_id = v_org) then
+          insert into public.lead_field_proposals
+            (organization_id, lead_id, campo, valor_proposto, trecho, expires_at)
+          select v_org, id, 'telefone', '"valor da proposta"'::jsonb,
+                 'RLS invariant proposta lida num documento', now() + interval '7 days'
+          from public.crm_leads where organization_id = v_org limit 1;
+        end if;
+
@@ -781,0 +795,7 @@ export const TABLES = [
+  // 0772 (#3316) — a fila de proposta de campo do card lida num documento. A
+  // leitura é org-scoped + vínculo com o negócio (a policy de select cobra a FK
+  // coerente com a org); a ESCRITA (policy `for all`) cobra
+  // fn_role_at_least('agent') e é medida em
+  // `tests/unit/capacidade-alcancavel-pelo-agente.test.ts`, não aqui. O seed
+  // acima grava uma linha real nos DOIS tenants.
+  "lead_field_proposals",
