Denis Lipatov RU / EN

AI

how I work

Models draft, a second model checks the first, tests decide, and the button stays with me.

How I work with AI

  1. 01

    Spec first

    Every feature starts from a written spec, traceable from idea to tasks.

    39specs, 1,262 tasks in VotaWallet
  2. 02

    Check the plan against reality

    An AI plan is compared with the real code and database before it becomes code.

    5security traps caught that an 11-round AI dialogue missed
  3. 03

    Second model reviews the first

    Independent review, every finding re-checked against code, none ignored.

    25findings re-verified, 21 fixed, 0 ignored
    3real bugs in game math found by a second model, incl. a sign error, after a 40-paper check
  4. 04

    Tests decide

    Nothing merges without the full suite plus a new test for what it touched.

    5,000+automated tests; 16 red builds stopped by the gate
  5. 05

    Ship small and often

    Trunk-based, test-gated, every merge goes to production.

    331production deploys in 103 days, 57 of 57 PRs merged
  6. 06

    Agents inside fences

    Tests run after every edit, destructive commands are blocked, anything that leaves the machine waits for my tap. Every mistake becomes a dated rule.

    8,000+agent tool calls supervised in the last 30 days

I do not merge a diff I cannot explain, and the test suite in CI is what makes that a policy rather than a good intention.

AI systems I run

VotaClaw personal assistant

One Telegram chat. It files what I send into my notes, transcribes voice offline, watches my product's CI and logs, drafts posts, and stays silent when there is nothing to say.

Built on the open-source OpenClaw gateway, configured and extended by me. Third generation since 2025.

Fence Deterministic scripts first, the model only on a hit. Anything that leaves the machine waits for my tap.

23automations from one chat
13input types sorted without a command
500+automated jobs a week
25languages transcribed offline, on CPU

VotaJob agentic document pipeline

My adaptation of an open-source agentic framework. One agent drafts from a verified fact base, a second critiques with fresh eyes, scripts check how a machine reads the PDF, and I edit and decide.

Fence Nothing is sent without me. A browser lane stops before anything irreversible.

8stages: drafting agent, reviewer agent, PDF machine check, human approval

VotaWallet MCP AI connector for end users

A user connects Claude, ChatGPT or Gemini to their own wallet. Idea from an AI dialogue, checked against code, 5 traps found, spec, independent review, load test, production in 69 hours.

Fence The server computes money, the model never does. Writes are idempotent, AI records are marked and undoable.

The product page

17tools
69 hspec to production
434tests shipped with the feature
402/402calls under 1 s at 10x load

Before that, at a food-delivery company

LLM features in production: support bots, dish detection in photos, a self-learning ticket classifier, AI-assisted incident triage. Agent rules, skills and MCP servers rolled out to the team.

Career, 2022

Toolbelt

Claude Code, Cursor, Gemini CLI, Antigravity, NotebookLM. 9 MCP servers in daily work, one of them my own product.

9MCP servers in daily work
73agent skills in one product repo, 22 written for it
6coding agents with rule files in one repo

Builds

VotaMonad one-day hackathon build, Monad Blitz Belgrade, August 2026

On-chain track-and-trace for marked goods. One Merkle root puts an order of 100,000 codes on-chain in two transactions. Every published number was measured.

Live demoGitHub

100,000codes on-chain in 2 transactions
20,000xcheaper than writing codes one by one
361 msp50 from submit to receipt on a live chain
1day of work, 8 hours from start to live demo

Pivonator Akinator for beer: a product idea with a prototype

A Bayesian engine picks the question that cuts the most uncertainty; a bartender named Brew asks it. Math checked against 40 papers and a second model.

7days from an empty repo to a playable game
11,000+beers, 723 breweries, 204 styles
13.8 msper move on a 1.19M-cell matrix
889Python tests behind the engine and the scraper

When an agent gets something wrong, I find why and add a rule so it does not happen again.