Demo workspace · no sign-up

A Buff workspace where the work is already done

“Hi, I’m Buff — your company’s AI system. I speed up routine, help with operations and do the work that keeps getting put off.” Here that is not a promise: Buff has already worked for a made-up company with 42 documents and on two real third-party code projects. The company is invented, the work is real: every result has a price and a source, and each one can be opened and checked.

Open the demo workspace Read chapter by chapter ↓The workspace is view-only. You can ask your own questions after free sign-up.

The training company “Zametki”

42 documents in eight folders: contracts, policies, a price list, minutes — written as in real life, with discrepancies and an outdated help page.

Two third-party code projects

The Shopizer online store in Java and the FreeScout help desk in PHP: large, undocumented, and not written by us.

One owner

Everything in the workspace was done by one owner account: they asked questions, set tasks, answered the analyst and made the decisions in review.

Chapter 1 · Done

“While you were in a meeting, I closed the tasks you had put off”

The tasks were taken from FreeScout’s public tracker — the kind users send every day and the team puts off. Buff took them to merge on its own: formulation, subtasks, development with tests, review. The owner only answered questions and said “yes”.

Task #84 · Merged

The archive of translation files is not rebuilt: the old one is not deleted, and new content is appended to it.

Found that the program checked the archive on one disk but wrote to another. First wrote a failing test, then fixed it — the same way the project’s authors did later. In review, the owner asked the assistant whether the work matched the specification, and merged it.

133.71 ₽ · 9 files, +806 −34 lines

Open the task Original request: freescout #5675

Task #88 · Merged

Receiving mail has points where modules can hook in, but sending does not.

Added four extension points to sending, mirroring receiving, and four tests for them — in four subtasks. Merged after review.

274.08 ₽ · 18 files, +1,616 −38 lines

Open the task Original request: freescout #5648

Task #89 · Merged

An email that reaches the mailbox by two routes with the same identifier creates two conversations instead of one.

Built it and sent it to review. The owner noticed there was no end-to-end test for an email that differs only by sender or date, and returned the task with that remark. Buff accepted it, added two tests, and in the second review the assistant confirmed: the remark is resolved, the old tests are intact. Merged.

228.81 ₽ · 16 files, +1,703 −13 lines

Open the task Original request: freescout #5638

Task #91 · Merged

When a customer replies, attachments from earlier emails are saved again, and the file list grows with every reply.

Taught the import to recognise attachments already saved by their content rather than their name, with an exception for inline images, and covered it with three sets of tests. In review, the owner asked the assistant about old records without a hash and the risk for uploads from the interface — the answer: behaviour does not change, there is no risk. Merged.

309.69 ₽ · 15 files, +1,947 −66 lines

Open the task Original request: freescout #5311

Chapter 2 · Answer

“Ask about a contract, a policy or the code. I’ll answer in a minute and show where I got it”

An employee does not need to know where things are or whom to ask. They ask a question in plain words, and Buff reads the company’s documents or the project’s code and, for every answer, names the document and section, or the file and line.

  • A customer on the “Business” plan asks how quickly we will respond to their request. What should we promise?1.04 ₽

    4 working hours — under the policy and the contract; the FAQ says 8, but it is out of date. Open the answer

  • How does loading incoming mail work, and what happens to an email before a conversation appears?7.38 ₽

    From the scheduled command to the database record — step by step, with files and methods. Open the answer

Eight departments of “Zametki” asked 18 questions, and programmers asked seven questions about the code of two projects. Every answer can be opened and checked against the documents it names.

Customer support

  • A customer on the “Business” plan asks how quickly we will respond to their request. What should we promise?

    4 working hours — under the policy and the contract; the FAQ says 8, but it is out of date. Open the answer

  • A customer wants a refund 20 days after paying. What do the policy and the FAQ say, and what should we answer?

    Refunds only within the first 14 days; a ready refusal text that carries over the remainder. Open the answer

  • Were there repeat requests about the same bug in September?

    Three requests about the CSV export bug, two from the same customer; a reply template. Open the answer

Sales

  • How much is the “Business” plan per seat per year, and what discount does a client with 80 seats get?

    9,080 ₽ per seat per year, a 10% volume discount — from the price list sheets and the policy. Open the answer

  • Does the standard subscription contract have an automatic renewal clause, and what is the notice period?

    Yes, section 9: 30 days to opt out; the periods differ in signed contracts. Open the answer

  • What payment terms, deferrals and discounts did we give clients in the “distribution” segment in 2026?

    A table of two clients from the deal register and the contracts. Open the answer

Legal

  • What is the number of the contract with sole trader Kungur, what does it cover and until when is it valid?

    No. 17-2026, advertising at 85,000 ₽ a month, penalties of 0.05% — from a PDF in the network folder. Open the answer

  • How does the 2026 edition of the procurement policy differ from the 2024 edition?

    Two tables: thresholds, timing, number of offers — and the new clauses. Open the answer

HR

  • How do I apply for leave: how many days in advance, who approves it and who processes it?

    14 days in advance through the HR portal; the manager approves, the HR department processes it. Open the answer

  • I am a new employee. Who grants access to email and the portal, and whom do I contact?

    The IT department, on the manager’s request, by the end of the first day — plus a “whom to contact” table. Open the answer

Finance

  • Which supplier payments fall in October 2026, and which contracts have a prepayment?

    Six payments in a table and three contracts with prepayment. Open the answer

  • What is in the “Training” line of the third-quarter budget, how has it changed and why?

    Plan 450,000 ₽, actual 380,000 ₽ and the reason for the change — from two sheets of one spreadsheet. Open the answer

  • What does the contract with Vektor LLC require in terms of closing documents?

    A universal transfer document quarterly, an invoice, a reconciliation statement on request — section 11 of the contract. Open the answer

Marketing

  • What does the brand book say about the logo on a dark background and its minimum size?

    The white version only, 24 px on screen and 15 mm in print — from the brand book PDF. Open the answer

  • Check the landing page text against the “How we talk about the product” document.

    Three violations, phrase by phrase, and what to add. Open the answer

Management

  • What decisions on the “Mobile app” project were made over the quarter, and what remained open?

    Three sets of minutes: decisions, open questions and what has been postponed for a second month. Open the answer

  • Pull together the figures from the support, sales and marketing reports for September and name where they disagree.

    Two discrepancies between the reports, with the figures recalculated from the registers. Open the answer

Product management

  • What is in the roadmap for the fourth quarter, and does it conflict with the requirements and the release policy?

    Three items of the plan checked against two documents; two caveats about dates. Open the answer

About the Shopizer code

  • Which configuration profiles does the project have, and what needs changing to run the store with MySQL?

    Six configuration variants by file, how they differ — and exactly what to change. Open the answer

  • Which payment methods does the store support out of the box, and how do you add a new one?

    Six methods out of the box, adding a new one in four steps, and one method that is in the code but not wired in. Open the answer

About the FreeScout code

  • How does loading incoming mail work, and what happens to an email before a conversation appears?

    From the scheduled command to the database record — step by step, with files and methods. Open the answer

  • Which background jobs are in the scheduler, how often do they run and what does each one do?

    Thirteen jobs in a table, from every minute to monthly. Open the answer

Buff’s answer

← scroll the frame →

A support agent asked what response time to promise a customer. Buff gave 4 working hours, cited the policy and the contract — and warned that the FAQ has an outdated figure. The question cost 1.04 ₽.

Chapter 3 · Discrepancies

“If documents disagree, I’ll be the first to say so”

A living company’s documents disagree: the help page lags behind the policy, department reports count differently. Buff does not pick the convenient figure — it names both and says which to trust and why.

  • A customer on the “Business” plan asks how quickly we will respond to their request.

    The support help page promises 8 hours, the policy and the contract say 4. The help page is out of date. Open the answer

  • Pull together the figures from the support, sales and marketing reports for September and name where they disagree.

    Two discrepancies between the reports, with the figures recalculated from the registers. Open the answer

So that Buff does not repeat someone else’s mistake, a person once recorded the pitfall “the support FAQ lags behind the documents” in the knowledge base — since then it is taken into account in every answer. Open the knowledge base

Chapter 4 · Document

“Need a contract reconciliation for the head? I’ll build it from your files, and a second agent will check every statement”

When you need a document rather than an answer, two AI agents work on it: the analyst writes, the reviewer checks every figure against the sources and sends it back for correction. The finished document exports to PDF. One research costs 30–100 ₽ and takes minutes.

2026 contracts checked against the template and the deal register

A table of all contracts, the differences from the standard template and two deals with no contract in the folder. Open

Three versions of the commercial proposal for “Romashka”

What changed from version to version, and where the total was calculated differently from the company’s other deals. Open

Competitor comparisons in presentations

Every comparison from two presentations in one table, including speaker notes, and where the presentations disagree. Open

Closing documents by counterparty

What we receive and issue, how often and how — from the contracts, the accounting guidance note and the supplier register. Open

Waiting for the author’s answer

A memo for the head: what to change so that the client renews the subscription

The analyst stopped and asked which client is meant — this is what a research waiting for an answer looks like. Open

Customer address book (Shopizer)

Customers ask for several delivery addresses: how addresses are stored now, what will have to change, and a work plan with risks. Open

Upgrading an outdated platform (FreeScout)

In what order to upgrade the platform and dependencies, what will stop working along the way and where to start. Open

The “Customer address book” research did not stay a document: its plan became the specification of task #105 — eight subtasks, and it is already merged. Open task #105

The analyst asks

← scroll the frame →

If a question allows different answers, the analyst does not guess but asks the author — with options. While it waits, the research has cost 7 ₽; once answered, the work continues.

Chapter 5 · Old code

“A project nobody has touched in years? I’ll work it out, set up the environment and cover it with tests. It becomes workable again”

We deliberately took not textbook examples but two large open-source projects we did not write: Shopizer — 109 thousand lines of Java with almost no documentation, FreeScout — PHP on an outdated platform with hundreds of hand-edited dependencies. Code like this is usually avoided.

Shopizer audit

Before taking on tasks, Buff studied the whole project and wrote a ten-section report: how the program is built, how it is built and tested, where the risks are. Open the audit

FreeScout audit

Before taking on tasks, Buff studied the whole project and wrote a ten-section report: how the program is built, how it is built and tested, where the risks are. Open the audit

Set up the environment and tests — once per project

  • FreeScout — how to build it, how to run the tests, how to check a change: 22 subtasks, 97 files.4,257 ₽ Task #58
  • Shopizer — how to build it, how to run the tests, how to check a change: 28 subtasks, 89 files.3,469 ₽ Task #71

Since then the owner sees all the project’s tests and their state without a programmer, and every task comes with tests: a baseline run before development, regression in review.

FreeScout tests: 71 Shopizer tests: 107

Chapter 6 · Your own code

“Buff Code is an app and a console on your computer. Every edit is visible and can be rolled back”

The programmer writes the code, and AI helps — with the same company knowledge and connections. Every session stays in the organisation’s log: what was asked, what the AI did, what came of it and what it cost. The head sees it without a call.

A programmer worked in both projects: worked out where Shopizer checks the cart owner and how FreeScout filters out emails already loaded, wrote a test in each and tried to run them. Then the head asked about the sessions in plain words: “What did the AI do in these sessions, what changed in the code and what did not work?” — and got an answer from the log.

Development sessions

← scroll the frame →

Four sessions, 12 minutes of AI work, 9.59 ₽. Each line shows what the programmer asked for, how many turns it took and what it cost; a session opens in full.

Chapter 7 · Memory

“Correct me once and I’ll add it to the rules. I remember your code and your decisions”

The knowledge base is what Buff must know about the company and its projects: how work is done, how things are built, where people trip up. It takes the base into account in every answer and every task, and adds to it after its work — marked until a person has checked it.

Written by a person

“Zametki” has three entries: the rule “quote deadlines to customers only from the contract”, a fact about where things are, the pitfall “the support FAQ lags behind the documents”.

Found by Buff

Another six entries Buff added itself after its research — they are marked “needs review” until a person confirms them.

Code projects have their own memory: after every merged task Buff records what it learned about the code — and the next task does not start from scratch. FreeScout knowledge

Chapter 8 · Money

“Pay for what is done. Every task shows how much and for what. Adding people is free”

Buff charges for AI work, not for licences or seats. The prices below are real, from this workspace, at the same rates that apply to everyone. All demo spending is visible in the workspace itself, under “Balance”.

0.7–3 ₽

A question about documents — including reading the sources. The most expensive code question in the demo cost 7.38 ₽.

30–100 ₽

A research by two agents, including corrections after review.

2–3 ₽

A programmer’s session in Buff Code.

130–1,420 ₽

A development task from request to merge — with tests and review: 130–310 ₽ in FreeScout, 730–1,420 ₽ in the large Java project Shopizer. Nine merged tasks together — 5,988 ₽.

3,500–4,300 ₽

Preparing the project’s development tools — once per project; after that, tasks cost the price of a task.

0 ₽

For adding people and for viewing: you pay for work done, not for seats.

Chapter 9 · Decision

“I change nothing without your decision”

Where the decision is a person’s, Buff stops and waits: the analyst asks the owner before formulating, the owner approves the formulation, discusses the changes with the assistant in review and either merges or returns them with a remark. Below are the tasks standing at these stops right now.

Task #111 · Waiting for the owner’s decision

The proxy from the settings is applied to all requests, and the local sign-in server cannot be reached through it.

The analyst worked out where the proxy is inserted into requests, found three ways — an exclusion variable, a proxy for the marketplace only, or a setting in each module — and stopped: the decision is the owner’s. This is what a task waiting for an answer looks like.

Open the task Original request: freescout #5691

Task #90 · In review

After a vulnerability fix, images in old emails stopped opening.

The analyst found two ways — rewrite the old links or make an exception in the check — and asked the owner which to take and at what cost; the four questions and answers are visible in the card. The owner chose the migration, Buff built it in four subtasks and sent it to review. The owner discussed the result with the assistant — this is what a task waiting for a decision in review looks like.

513.42 ₽ · 24 files, +5,057 −91 lines

Open the task Original request: freescout #5665

Task #89 · Merged

An email that reaches the mailbox by two routes with the same identifier creates two conversations instead of one.

Built it and sent it to review. The owner noticed there was no end-to-end test for an email that differs only by sender or date, and returned the task with that remark. Buff accepted it, added two tests, and in the second review the assistant confirmed: the remark is resolved, the old tests are intact. Merged.

228.81 ₽ · 16 files, +1,703 −13 lines

Open the task Original request: freescout #5638

Five Shopizer tasks ran in parallel, and two of them collided: #101 closed the cart to others, while the test of task #102 read it without signing in. Separately both were green; at #101’s acceptance, on the first shared tree, the test failed. Buff opened a fix subtask itself, the analyst diagnosed “parallel task conflict, the code matches the specification, fix the test”, the developer fixed it, acceptance passed again — and the owner saw the task already in review. Three hours without a person.

Task #101 · Merged

The cart contents are served to anyone who knows its code — without signing in.

Closed the cart to everyone except its owner, in five subtasks. In review, the owner asked for a test on someone else’s cart via a direct link — Buff clarified which response to expect and checked that such a test already existed. Before acceptance the task was merged with the parallel #102, and that task’s test failed: it read the cart without signing in, which #101 had just forbidden. Buff found the cause itself — a collision of two tasks — fixed the test, passed acceptance again and sent it to review. Merged.

864.62 ₽ · 20 files, +7,681 −206 lines

Open the task Original request: shopizer #1110

Task #102 · Merged

An order can be placed with someone else’s cart, and a review left in someone else’s name.

The customer is now taken from the sign-in, not from the request — in two subtasks, with tests for one’s own, someone else’s and a guest cart. Merged after review.

729.46 ₽ · 11 files, +4,227 −173 lines

Open the task Original request: shopizer #1112

Task #104 · Merged

Two places in the code that are hard to read and change: a long chain of conditions on payment methods and an overloaded method.

Rewrote both places without changing behaviour: payment methods became separate handlers, the method was split into named steps — in seven subtasks, protected by existing and new tests. Merged after review.

1,417.11 ₽ · 23 files, +8,507 −352 lines

Open the task Original request: shopizer #1095

Task #105 · Merged

Customers ask for several delivery and billing addresses.

The task grew out of the “Customer address book” research above: its plan became the specification. Eight subtasks, the largest task in the demo. In review, the owner asked the assistant whether the default address changes when a second one is added, and merged it.

1,165.83 ₽ · 31 files, +10,659 −255 lines

Open the task Original request: shopizer #145

Task #103 · Merged

Selling an item does not reduce its stock — you can sell more than you have.

The analyst asked the owner when to deduct stock — at checkout or after payment — whether to return it on cancellation, and what to do with two simultaneous orders; the answers are visible in the card. Done in six subtasks. In review, the owner discussed with the assistant returning stock when a partial shipment is cancelled — the assistant recorded the conclusion as a remark, the owner withdrew it as a separate improvement and merged.

865.09 ₽ · 28 files, +5,529 −178 lines

Open the task Original request: shopizer #223

Task #101

← scroll the frame →

Five subtasks — and two of them appeared along the way. Buff opened #134 on the owner’s review remark and #136 on its own, when a parallel task’s test failed at acceptance. Both are closed, acceptance is green, the task is merged; the whole story cost 864.62 ₽.

Try it

Seen it on someone else’s work — try it on your own

Sign up and connect your own documents or your own code. Sign-up is free and comes with a starting balance — you can ask your first questions before paying.

After sign-up the workspace will show you how to connect a folder of documents or your code. What happens to your documents and who sees them — on the “Security” page.