Inteligência que

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

Não me limito a acrescentar IA às interfaces. Concebo o estado, as ferramentas, a memória e as decisões que fazem o produto funcionar.

ENTRADAESTADODECISÃOMEMÓRIAPRÓXIMA AÇÃO

FOAAP / UM PRODUTO QUE CONCEBI E CONSTRUÍ

FOAAP. Um sistema operativo para negócios que mantém a memória.

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.

CONCEITOS DE INTERFACE / SEIS SITES DE DEMONSTRAÇÃO
Passa o cursor sobre um nome para explorar. Toca ou usa as setas para mudar.
NNorth — Estúdio de design independente

FOAAP / ESTÚDIOS

A interface, de perto.

Explorar a demonstração do motor ↗
Estúdios FOAAP para MVP, apresentações, som, conteúdos com IA e código. Captura original em inglês.

Estúdios FOAAP · Captura da interface em inglêsDesliza para explorar ↔

O MODELO OPERATIVO

Um percurso contínuo da ambiguidade à ação.

Muitas vezes, a informação já existe. Ligo-a entre fontes e modelos de pensamento para que uma pessoa compreenda a sua posição, veja as suas opções e aja a tempo.

01

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.

02

estruturar

Construir uma ontologia que liga pessoas, instituições, registos, obrigações e prazos. Transformar factos isolados em relações sobre as quais uma pessoa pode raciocinar.

03

investigar

Cruzar fontes e modelos de pensamento pouco familiares. Encontrar contradições, registos desatualizados e informação que passou a ser relevante para uma decisão ou um prazo.

04

decidir

Formular uma afirmação explícita sobre a situação, sustentada por evidência. Tornar os pressupostos visíveis, ponderar alternativas e manter a posição aberta a revisão.

05

produzir

Reunir esse raciocínio em algo utilizável: um mapa de evidência, uma síntese para decisão ou software funcional. Dar à pessoa uma base para agir.

06

recordar

Preservar as fontes e o raciocínio por detrás de cada posição. Permitir que nova informação atualize o modelo, para que o conhecimento se acumule entre decisões.

07

próxima ação

Identificar o próximo passo concreto, do que depende e quando deve acontecer. Tornar explícito o percurso da compreensão à capacidade de agir.

A TESE

Ampliar o teu repertório cognitivo através de investigação e síntese.

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 ↗

Repositórios selecionados

03 REPOSITÓRIOS / CÓDIGO E DECISÕES
lib/validate_candidate.mjs
    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 });    }

Rastrear cada afirmação até à sua fonte.

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.

02 / Bicis SapiensPostgreSQL / RLS
supabase/migrations/0001_init.sql
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);

Definir a propriedade dos dados na base de dados.

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.

03 / FOAAP EnginePostgreSQL / PL/pgSQL
supabase/engine-schema.sql
  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;

Tornar explícitas as escritas desatualizadas.

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

01

Produto

Definição do problema, ontologia, modelo de interação e ciclo operativo.

02

Engenharia

React, Vite, Supabase, Postgres, OpenAI, Anthropic e publicação em produção.

03

Critério

Invariantes do estado, análise de falhas, observabilidade, novas tentativas e o próximo passo para reforçar a robustez.

Paulo Villalobos a falar em palco

QUEM CONSTRÓI

Procuro sistemas difíceis, não tarefas seguras.

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

Dá-me a parte difícil.

paulo@foaap.app
WhatsApp