Ilya Shkura
EN UK RU

Projects

Apps you can open yourself.

Two apps from my cases run live: built with Claude Code, checked and fixed. Sign in with a demo login and try them. Below them is Iterum, the system I build for checking analytical reports.

Live apps

Test data only; sign-ups are closed, no email goes out, and everything resets every night, so use made-up names.

Supabase · Stripe test mode

Nordaloom, a knitwear shop

Catalogue, card payments, returns and an owner's admin. 28 problems found in the shop as it was handed over; 24 fixed. Card 4242 4242 4242 4242, any future date, any CVC.

  • Customer: customer@demo.nordaloom.example / knit-customer
  • Owner (admin at /admin): owner@nordaloom.example / knit-owner

Firebase

Folioport, a client portal for design studios

Projects with stages, client approvals, files, share links and plans. 29 problems with who may see and change what; 26 fixed and 3 partly, no high left. Uploads: images and PDFs up to 2 MB.

  • Studio owner: camille@atelierbrume.example / demo-owner
  • Freelancer: oskar@bergmotion.example / demo-freelancer
  • Client's main contact: jonas@velolumen.example / demo-client
  • Founder (admin of every studio): founder@folioport.example / demo-founder

My own project

Iterum

Every figure of an analytical report, checked against the data it came from.

Repository on GitHub

What it does

Takes a report and the raw data behind it, and returns a document that gives every figure a status: matches, does not match (both values), or can't be checked, and why.

How it checks

Deterministic code recomputes each figure from the rows. Model reviewers read the words around the figures. Definitions a machine can't decide are answered by a person first.

What you can verify

Every result comes with a receipt: the SHA-256 of each file. Anyone can recompute it with Get-FileHash or shasum, without Iterum.

Example output

An excerpt of the verification document from the AI-report case, as the system writes it: 4 of 113 rows.

Submitted for checking: 113. Matches: 27. Does not match: 8. Not confirmed: 0. Cannot be verified: 78.

WhereIn the reportWhat it meansFrom the exportStatus
line 98,664Orders in Q1 2026, not cancelled, not a test or staff order8664matches
line 1143,677.95Discount codes in Q1 2026, EUR incl. VAT43677.95matches
line 131,475,396.98Net sales in Q1 2026, EUR incl. VAT, excl. shipping1474891.63does not match
3,217Orders counted in January 2026cannot be verified

Receipt fcc7b27658a0-20260923183029-4fcfdd2c3afb · report release/report.md sha256 e8df0c58…d8d9d4

The full document · The receipt

Evidence in the repository

  • An AI's sales report, checked113 figures: 27 match, 8 do not, all from one line of the assistant's code; 78 can't be verified, each with its reason.
  • The defect zoo68 planted mistakes, 38 for the machine checks and 30 for model reviewers, and which layer stops each one.
  • The reviewer bench579 records of four reviewer profiles on the same planted cases: what each one blocks, warns about or misses, and what it costs.
  • Shopify sales against payouts€285,084 between March sales and card payouts, explained line by line.
  • Fifteen funds on one date106 figures recomputed; 37.2% of gross value in suspended or delisted securities.

In the repository the system is named by its working name, MAX v2. Orders get the same method: definitions first, then an independent recount.