./gc/revision-tool

// case study · lekta ai platform · ai-augmented design

Revision Tool

How a multi-step ML release process became one button — designed with AI in the loop.

revision_tool — one action, all backend complexity hidden
role
Senior Product Designer · sole designer
scope
0→1 — new module, previously manual dev work
platform
Lekta — voice & text bots for banking and telco
team
fullstack devs · CTO
process
AI-augmented (GPT · v0)

// problem

Teams implementing bots couldn't test and publish model versions on their own — every change needed developer support, creating delays, version mismatches and bottlenecks.

// approach

Understand the backend deeply enough to hide it: hours of technical conversations, a full state map, then a UI that exposes one action instead of twelve states. AI worked as domain expert, system thinker and red team.

// outcome

Releases moved from developers to product people — down to a per-sprint ritual. Honest UI under ML constraints, consistent with the platform.

fig. 01

context

Revision Tool is one module within Lekta — an enterprise platform for building and managing voice and text bots used in banking and telco. Changes made across all platform modules flow into Revision Tool as a draft revision — visible to the user only after training is complete. Before this module existed, every release required manual developer intervention.

// data flow — how changes reach the tool

Dialog Designer

dialogue logic & flows

Conversations

ML model improvements & review

Bot Reactions

bot response editing (NLG)

Revision Tool

all changes arrive as a draft revision — one button away from production

fig. 02

problem

The backend had 12+ states.

The user needed to see one action.

// constraints

fig. 03

process

// reasoning trace — each step follows from the one before

  1. Understanding the system

    Many hours of technical conversations with fullstack developers — what triggers a freeze, how training connects to model versions, how environments map to clients.

    // the backend surface I had to absorb

    freezequeuetrainvalidateversionassigndeployrollbackerrorretrylockdiff…

    12+ states · learned from hours of dev conversations

    ◈ how AI helped here

    ◈ AI as Domain Expert — I used AI to validate whether I had correctly translated backend logic into design thinking. The risk is over-trusting outputs: every hypothesis still needed human validation against what the devs actually said.

  2. Mapping dependencies

    The full state diagram: what triggers freeze, what happens during training, what blocks assignment, what the user sees when training fails.

    // state machine

    Freeze changes

    ↓ creates

    Draft revisiontraining starts automatically

    ↓ training result

    ● success — id copyable
    ● error — check logs

    ↓ assign to app

    Appcurrent: rev_20240312_143AChangerevision id…Save

    ↓ deployed to

    Production
    Staging
    Development
    ◈ how AI helped here

    ◈ AI as System Thinker — mapping 12+ states and their transitions revealed which states were meaningful to users (exactly one: 'done') and which were backend implementation detail.

  3. Eliminating complexity

    Early UI sketches in v0 with all backend steps visible — progress indicators, state labels, multi-step flows. The result was immediately clear: exposing backend states created cognitive overload.

    // what the user could have seen → what they saw

    state: freezing

    training 3 / 12

    queue position 4

    model v2.1.7

    validating nodes

    env mapping

    →

    Freeze changes

    12 states → 1 action · all backend complexity hidden

    ◈ how AI helped here

    ◈ AI — Explain Like I'm 10 — I stress-tested every label, button and status message. If a sentence needed backend knowledge to understand, it didn't ship.

  4. Stress-testing before handoff

    Surfacing edge cases before developers found them: what if training fails? Can a failed revision reach production? What does a long training with no progress data look like?

    // adversarial questions, before QA could ask them

    ? what if training fails?

    → error state — no false progress bar

    ? can a failed revision ship?

    → blocked from production

    ? long training, no progress data?

    → honest end-state message

    ◈ how AI helped here

    ◈ AI as Critic / Red Team — adversarial questions against my own design. Cheaper than finding the same holes in QA — or in a client demo.

// ai in the loop — four roles, one rule: it accelerates thinking, it doesn't replace it

◈ domain expert

validated my translation of backend logic into design decisions

◈ system thinker

mapped states, transitions and dependencies into one diagram

◈ explain like i'm 10

stress-tested every label and message for non-technical users

◈ critic / red team

attacked the design with edge cases before handoff

// key insight

The more I understood the backend, the less I showed of it.

// before

flow diagram — early logic breakdown
// flow diagram — early logic breakdown
error taxonomy — mapping what the user must never see
// error taxonomy — mapping what the user must never see

// after

final UI — one action, clear status, minimal cognitive load
// final UI — one action, clear status, minimal cognitive load
design evolution — lo-fi sketch → intermediate layer → shipped app card
// design evolution — lo-fi sketch → intermediate layer → shipped app card

// same logic. different cognitive load.

fig. 04

outcome

Ownership without dev dependency

Each client had a designated person responsible for releases — frequent at project start, down to once per sprint in mature projects. All without developer involvement.

// releases shifted from a developer task to a product ritual

Honest UI under ML constraints

Training time was unpredictable — a progress bar would have lied. Instead: no false indicator, a simple end-state message, and the new revision appearing in the list as confirmation.

// users stopped asking 'is it done?' — the list answered for them

Consistent system, unique module

The only module with custom components driven by its unique data model. Typography, color and information patterns stayed consistent — layout and interaction logic were built from scratch.

// a new interaction pattern that didn't break the system it lived in

fig. 05

reflections

Limitations of AI in this process

AI was a thinking partner, not a shortcut. It couldn't replace hours of technical conversations with developers — it could only help verify whether I understood them correctly. What used to take weeks of back-and-forth took hours to verify; the speed was in validation, not in replacing the conversations.

What post-MVP could look like

Revision diff analysis — showing exactly what changed between NLU, NLG and Dialog versions — was the most requested next feature. Configurable environments were the clear second. Both were conscious cuts: a stable v1 that ships is worth more than a perfect v1 that doesn't.

You ask the kind of questions that change my point of view.
— Tomek · Product Manager · Lekta AI

Have a complex product that needs clarity?

Open to a long-term B2B contract, a freelance project, or a one-off consultation.

or reach me directly:

LinkedIn ↗