Código público e funcional, não um slide de portfólio: ferramentas de planejamento de supply chain, um sistema de configuração de IA, um app de ditado por voz offline, e o design system do qual esta própria página é feita. Escolha um card para ver o que ele realmente faz.
Supply chain resilience control tower — risk radar, what-if simulation (time-to-recover / time-to-survive), and mitigation ranking. No dependencies to install; the dashboard is one self-contained HTML file.
git clone https://github.com/LaviSahu/resilience-radar.git# risk_score = likelihood(1-5) * impact(1-5), range 1-25.
TIER_THRESHOLDS: list[tuple[int, RiskTier]] = [
(20, RiskTier.CRITICAL),
(12, RiskTier.HIGH),
(6, RiskTier.MEDIUM),
(1, RiskTier.LOW),
]
def likelihood_score(event: Event, classification: Classification) -> int:
"""1-5, from event confidence (0-1) plus a source-reliability adjustment."""
base = event.confidence * 5
adjustment = SOURCE_RELIABILITY_ADJUSTMENT.get(classification.source_category, 0)
return _clamp(base + adjustment, 1, 5)src/resilience_radar/scoring.py — classic likelihood × impact risk scoring, plus a per-source reliability adjustment (geopolitical/regulatory signals score noisier than, say, a supplier or logistics event).
Every animation on the rebuilt pages
The merge-conflict resolutions of 2026-09-19
The twin's system prompt
Each repo description (2 of 8 carry verbatim code excerpts)
Everything the twin tells you
Whether anyone has ever used these repos
A terceira coluna é a honesta. Ela esvazia só quando a lacuna esvaziar — não antes.
Três ferramentas ao vivo — simulador de cenários, calculadora de estoques, gráfico de efeito chicote. Sem slides, sem enrolação: cada número é calculado no seu navegador enquanto você move as alavancas.
Isto não é um chatbot embutido. É uma Cloudflare Pages Function chamando Workers AI diretamente — travada neste domínio, com limite de requisições por IP, com um system prompt que manda dizer 'eu não sei' em vez de inventar nome de cliente ou um número. Pergunte algo sobre S&OP ou planejamento de estoques.
Uma demo: um modelo de linguagem com um prompt curto na minha voz. Ele pode estar errado com toda a confiança — não aja com base no que ele diz. Pergunte sobre S&OP, IBP, o9, estoques.
Pergunte qualquer coisa sobre planejamento. O gêmeo responde na minha voz.
Autoavaliação do gêmeo — Tom: próximo. Fatos: não verificados por ninguém, incluindo eu. Modelo: @cf/meta/llama-3.3-70b-instruct-fp8-fast, limitado a 512 tokens, instruído a dizer "eu não sei" em vez de inventar nome de cliente ou um número. Uma proteção, não uma garantia.
Gerado por IA · não substitui o Lavi de verdade
Every card below is a real VengeanceUI port — working code, not a screenshot. Exactly one of them, VeCreepy, is actually load-bearing right now: it's the Connect link in this site's own footer. The other twenty-seven are verified to render, not yet asked to carry a real page's weight. Same rule as the build log above — a component only counts as shipped once it's doing a job, not once it looks good in a gallery.
Not case studies from my own client work — original, research-driven essays on real named frameworks and formulas (bullwhip ratio, TTR/TTS resilience, the Kraljic matrix, Theory of Constraints, digital twins), each grounded in a cited real source, not invented. Pick a card for the summary, or read the full essay.
For the fuller story behind the bullwhip math — two 2000s-era factory fires and what they cost — see Buffer Shock, on the Blog →
Mova as alavancas que um planejador realmente controla — veja os trade-offs se moverem em tempo real. Modelo ilustrativo.
Ponto de operação equilibrado. O serviço se mantém perto da meta com estoque e utilização numa faixa saudável.
O que isto esconde: um SKU, uma linha, uma temporada. Obsolescência aqui é um proxy, não um modelo de write-off. A versão pela qual me pagam tem um plano de demanda discutindo com a baseline estatística — essa discussão é onde o trade-off realmente se resolve.
EOQ, estoque de segurança e ponto de reabastecimento a partir dos seus próprios números — a matemática por trás de toda política de ressuprimento.
Peça 4,767 unidades cerca de 25.2× por ano. Reabasteça quando o disponível chegar a 5,183 — carregando 563 unidades de estoque de segurança para manter 97% de nível de serviço ao longo de um lead time de 14 dias.
O que isto esconde: σ é a variabilidade diária da demanda, não o erro de previsão — a versão de produção usa erro de previsão, que é maior e menos educado. O valor de z vem de uma tabela de dez linhas, não da curva normal completa. E 97% é só uma meta — confira se o estoque de segurança está dimensionado para o nível de serviço que você realmente prometeu.
Uma pequena oscilação na prateleira vira uma tempestade a montante. Veja a variabilidade da demanda se amplificar elo por elo. Modelo ilustrativo.
Pequenas oscilações de demanda na prateleira se amplificam em grandes oscilações de pedidos a montante — no elo 4 (CD Regional), um CV de 20% vira um índice de pedidos de 173. Visibilidade de demanda, lead times mais curtos e suavização de pedidos amortecem o chicote.
O que isto esconde: cada elo multiplica a oscilação por um-mais-CV — um modelo didático, não uma simulação. Chicotes reais são racionamento manipulado e pedidos em lote. Os amortecedores na nota são os que sobrevivem ao contato com uma carteira de pedidos real.
Cinco feature branches — Home, Work, Library, Travel, Games, About, 404 — cada um construído independentemente ao longo de aproximadamente duas semanas, todos sem merge. Hoje viraram um branch só: cinco commits de merge, três exigindo resolução manual de conflito — todos no mesmo arquivo, todos resolvidos mantendo os dois lados, e um bug real de import duplicado detectado e corrigido antes que pudesse ir para produção.
O que quase se perdeu: 207 arquivos e cerca de 10MB de trabalho anterior — novos componentes de motion, um rig de desmontagem quadro a quadro, uma build 3D com seus dois bugs conhecidos corrigidos, o precursor desta própria página — nunca tinham sido commitados. Estavam parados numa pasta em um notebook. Resolvido com um comando; podia estar a um git clean errado de desaparecer.
O que ainda está em aberto: a pipeline que fez este trabalho consegue compilar o site e reler o HTML dele, mas não consegue renderizar um pixel. Cada animação desta página, e das quatro páginas anteriores, hoje é verificada por code review e pelos olhos de um humano — não por uma IA. Essa lacuna está declarada aqui de propósito, não disfarçada.
Autoavaliação — Planejamento: 8/10 (havia uma spec e ela foi seguida). Verificação: 4/10 (QA visual bloqueado neste ambiente — lacuna real, divulgada, não escondida). Decisões de julgamento tomadas sem perguntar antes: várias (o novo teto de bundle, o estilo de resolução de conflitos de merge, commitar trabalho anterior não commitado) — todas reversíveis, nenhuma foi para produção.
Próxima entrada, ainda não escrita: dar olhos à pipeline — um navegador headless no CI que renderiza as animações desta página e compara cada quadro com o último bom conhecido. Se isso rolar, a nota de Verificação acima muda. Se não rolar, esta linha fica, sem data, como o recibo.
refkit · VengeanceUI ports
28 components ported from the VengeanceUI registry to plain POP-token CSS — every demo below is live. The heavy WebGL pieces wait until you scroll to them. Tap a card's name for what it demonstrates and its real-vs-demo status.
Interactive Edition
Each piece starts as a registry component and lands here as one TSX file plus a CSS batch.
Tailwind classes go first, swapped for POP tokens: ink outlines, hard shadows, cream ground.
Springs move to motion/react and every animation learns to sit still under reduced motion.
The End
The people behind the product
A small, multidisciplinary team building thoughtful tools for ambitious people.
one word morphs into the next
Lines split, blur, and snap back into focus.