compreender
Compreender a posição da pessoa dentro de um sistema: o que a afeta, o que consegue ver e onde a sua capacidade de agir está limitada.


Construo sistemas de IA que ligam informação dispersa, preservam o contexto e transformam raciocínio em ação — para que as pessoas possam compreender melhor, decidir por si próprias e agir.
Explorar o FOAAP ↓A MINHA POSIÇÃO
FOAAP / UM PRODUTO QUE CONCEBI E CONSTRUÍ
O contexto de quem cria um negócio dispersa-se por conversas, documentos e ferramentas. O FOAAP transforma-o num estado persistente do negócio, resolve contradições e apresenta uma ação de elevado impacto.
FOAAP / ESTÚDIOS
Estúdios FOAAP · Captura da interface em inglêsDesliza para explorar ↔
A TESE
Construo sistemas que ajudam as pessoas a investigar problemas pouco familiares, ligar evidência entre domínios e transformar essa síntese em decisões que podem revisitar.
Explorar o meu GitHub ↗ const n = countOccurrences(rawText, q); if (n === 0) { errors.push(`quote_not_found: evidence_quotes[${i}] ${JSON.stringify(q.slice(0, 60))}`); } else if (n > 1) { errors.push(`ambiguous_quote: evidence_quotes[${i}] occurs ${n}+ times ${JSON.stringify(q.slice(0, 60))}`); } else { const start = rawText.indexOf(q); spans.push({ start, end: start + q.length, text: q }); }Mantenho as extrações do modelo como candidatas. Em anchorQuotes, uma citação tem de ocorrer exatamente uma vez no texto original antes de o validador aceitar a sua posição na fonte. Evidência ausente ou ambígua produz um erro explícito.
O modelo fornece a citação. Código determinístico calcula a sua posição.
Uma correspondência exata estabelece a proveniência; não estabelece que a afirmação é verdadeira.
alter table notification_settings enable row level security;···-- notification settings: only selfdrop policy if exists "settings_self" on notification_settings;create policy "settings_self" on notification_settings for all using (auth.uid() = user_id) with check (auth.uid() = user_id);Nos pedidos sujeitos a RLS, as definições de notificações pertencem ao utilizador autenticado. USING verifica a que linhas existentes pode aceder; WITH CHECK limita os valores que pode escrever. A migração ativa o RLS antes de definir a política.
A autorização é aplicada pelo Postgres, para além do que a interface decide mostrar.
O acesso com service-role contorna o RLS e tem de permanecer no servidor. Este excerto documenta a migração, não uma auditoria à base de dados em produção.
select v.version into cur_version from public.venture_models v where v.user_id = p_user and v.venture_id = p_venture for update;··· if p_base = -1 or cur_version = p_base then update public.venture_models set model = p_model, version = cur_version + 1 where user_id = p_user and venture_id = p_venture; return query select 'ok'::text, cur_version + 1, p_model, now(); return; end if; return query select 'conflict'::text, v.version, v.model, v.updated_at from public.venture_models v where v.user_id = p_user and v.venture_id = p_venture;end $$;revoke all on function public.save_venture_model(uuid, text, jsonb, int) from public, anon, authenticated;Um bloqueio de linha serializa as atualizações de um modelo existente. Quem faz o pedido fornece uma versão de base; uma gravação desatualizada devolve um conflito e o estado atual do servidor para que a aplicação possa conciliá-los.
A concorrência faz parte do contrato de persistência.
A via de gravação forçada (p_base = -1) é explícita. Os papéis public, anon e authenticated não podem executar diretamente esta RPC.
Excertos exatos das revisões indicadas. Os intervalos assinalam linhas omitidas. Cada repositório inclui código que pode ser inspecionado publicamente.
RESPONSABILIDADE DE PONTA A PONTA
Definição do problema, ontologia, modelo de interação e ciclo operativo.
React, Vite, Supabase, Postgres, OpenAI, Anthropic e publicação em produção.
Invariantes do estado, análise de falhas, observabilidade, novas tentativas e o próximo passo para reforçar a robustez.

QUEM CONSTRÓI
Desenvolvo deliberadamente capacidades intelectuais, técnicas, físicas, sociais e económicas que se reforçam entre si. O objetivo é uma maior agência: a capacidade de compreender sistemas difíceis, agir sob incerteza e construir coisas úteis.
Interessam-me especialmente os problemas em que o software se cruza com operações reais, instituições e utilizadores cujas decisões têm consequências.
PORTO / REMOTO