Авторский курс Елизаровой НаталииAuthor's course by Nataliia Elizarova
Модуль 15 · Урок 15-32Module 15 · Lesson 15-32

Свой интерфейс для прогноза ML: экран в HTMLYour own ML forecast interface: a screen in HTML

Прогноз ML посчитан, он лежит в Excel на тысячи строк. Коллегам нужно другое: выбрать город и SKU, увидеть факт и прогноз на графике, поправить месяц и выгрузить правки. В этом уроке Claude Code строит такой экран: один HTML-файл, который открывается в браузере с общего диска. Без сервера, без интернета, без ключа API.

The ML forecast is calculated and sits in Excel, thousands of rows. Colleagues need something else: pick a city and SKU, see actuals and forecast on a chart, adjust a month and export the edits. In this lesson Claude Code builds that screen: one HTML file that opens in a browser from the shared drive. No server, no internet, no API key.

⏱ 40 минут⏱ 40 minutes 🎮 Живой мини-экран с правкой прогноза🎮 A live mini screen with forecast editing ✅ Тест из 5 вопросов✅ A 5-question quiz 🔎 Проверено: ноябрь 2026🔎 Checked: November 2026

После урока вы сможетеAfter this lesson you will be able to

  • объяснить, из каких частей состоит экран прогноза и откуда в нём цифры;
  • написать Claude Code техзадание (ТЗ) и получить первую версию;
  • сверить цифры экрана с Excel до того, как добавлять красоту;
  • задать правила правки прогноза: доли, журнал, отдельный лист;
  • безопасно отдать файл коллегам — без ключей и личных путей.
  • explain what a forecast screen is made of and where its numbers come from;
  • write Claude Code a specification and get the first version;
  • reconcile the screen's numbers with Excel before adding polish;
  • set the forecast editing rules: shares, journal, separate sheet;
  • hand the file to colleagues safely — no keys, no personal paths.
1

Словарик из восьми словAn eight-word glossary

ИнтерфейсInterfaceэкран, через который человек работает с данными: фильтры, график, кнопкиthe screen a person uses to work with data: filters, chart, buttons
HTML-файлHTML fileфайл .html, который открывается двойным щелчком в браузере (Edge, Chrome). Как .xlsx открывается в Excelan .html file that opens with a double click in a browser (Edge, Chrome). Like .xlsx opens in Excel
Данные внутри файла (JSON)Data inside the file (JSON)цифры прогноза вшиты в сам HTML текстом в формате JSON. Поэтому файлу не нужен ни сервер, ни интернетthe forecast numbers are embedded in the HTML as JSON text. So the file needs neither a server nor internet
Сборка (build-скрипт)Build scriptскрипт Python, который берёт свежие цифры и заново собирает HTML. Запускается кнопкой .bata Python script that takes fresh numbers and rebuilds the HTML. Run with a .bat button
ФильтрFilterвыпадающий список «страна / город / суббренд / SKU»: экран показывает только выбранный срезa drop-down "country / city / sub-brand / SKU": the screen shows only the chosen slice
Правка прогнозаForecast editпланер меняет цифру месяца прямо на экране; разница раскладывается вниз по строкам город × SKUthe planner changes a month's number on screen; the difference is spread down to city × SKU rows
Журнал правокEdit journalсписок «кто, что, на каком уровне, было → стало». Каждая правка — отдельная строка, ничего не теряетсяa list of "who, what, at which level, before → after". Each edit is its own line, nothing gets lost
Выгрузка в ExcelExcel exportкнопка, которая сохраняет текущий срез или правки в .xlsx — числа числами, без заливокa button that saves the current slice or the edits to .xlsx — numbers as numbers, no fills
2

На пальцах: склад и витринаIn plain words: a warehouse and a shop window

📦 Excel с прогнозом = склад📦 The forecast Excel = the warehouse

Всё хранится, всё по полкам: 3 страны × 40 городов × 200 SKU × 18 месяцев. Найти нужное можно, но долго, и легко взять не с той полки.

Everything is stored, all on shelves: 3 countries × 40 cities × 200 SKUs × 18 months. You can find things, but slowly, and it's easy to grab from the wrong shelf.

🏪 Интерфейс = витрина и прилавок🏪 The interface = window and counter

Витрина показывает выбранное красиво и сразу: график, итоги, точность. Прилавок — место, где «отпускают товар»: правка месяца и выгрузка правок. Склад при этом не трогают.

The window shows what you picked, clearly and at once: chart, totals, accuracy. The counter is where goods are "handed out": a month edit and an edit export. The warehouse itself is not touched.

Как устроено: цифры идут по цепочке. Каждое звено — отдельный файл, Claude Code пишет их все.

How it works: the numbers travel along a chain. Each link is a separate file; Claude Code writes them all.

11Выгрузки: факт, прогноз ML, справочникиExports: actuals, ML forecast, lookups
→
22extract.py
читает и сверяетreads and reconciles
→
33data.json
чистые цифрыclean numbers
→
44build.py
вшивает цифры в HTMLembeds numbers in HTML
→
55forecast_ui.html
→
66коллеги открывают с общего дискаcolleagues open it from the shared drive
Главное правило: пересобратьThe main rule: rebuild Поменяли выгрузку или extract.py — запустите всю цепочку до шага 5. Иначе data.json уже новый, а экран показывает старые цифры. Это самая частая ловушка: «я же исправила!» — исправила, но не пересобрала. Поэтому вся цепочка запускается одной кнопкой RUN_forecast_ui.bat. Changed an export or extract.py — run the whole chain through step 5. Otherwise data.json is new but the screen shows old numbers. This is the most common trap: "but I fixed it!" — fixed, but not rebuilt. That's why the whole chain runs with one button, RUN_forecast_ui.bat.
3

Что должно быть на экранеWhat goes on the screen

Так выглядит хороший экран прогноза. Это рисунок, а не настоящий файл: по нему удобно объяснять Claude, чего вы хотите.

This is what a good forecast screen looks like. It's a drawing, not a real file: it helps you explain to Claude what you want.

 forecast_ui.html — Долина напитков · Прогноз MLValley Beverages · ML forecast
ПрогнозForecastПравкиEdits7Откуда цифра?Where's it from?
1 СтранаCountryВсе ▾All ▾ ГородCityВетровск ▾Vetrovsk ▾ СуббрендSub-brandЛимонад ▾Lemonade ▾ SKUВсе ▾All ▾
2
Прогноз FY 2027Forecast FY 20273 412тыс. лk L
vs 2026vs 2026+4,1 %
Точность (DFA)Accuracy (DFA)71 %
3Факт · чистая база · прогноз ML по месяцамActuals · clean base · ML forecast by month
4Город × месяц: Ветровск 19 · 21 · 15 · 16 …City × month: Vetrovsk 19 · 21 · 15 · 16 …
5✎ Правка✎ Edit6⬇ Excel⬇ Excel
1Фильтры слева: страна, город, суббренд, SKU. Всё ниже пересчитывается под выбор.
1Filters on the left: country, city, sub-brand, SKU. Everything below recalculates for the choice.
2Плитки: прогноз на год, рост к прошлому году, точность прошлых прогнозов.
2Tiles: forecast for the year, growth vs last year, accuracy of past forecasts.
3График: факт (зелёный), чистая база (линия), прогноз ML (оранжевый).
3Chart: actuals (green), clean base (line), ML forecast (orange).
4Таблица город × месяц — те же цифры, что на графике.
4City × month table — the same numbers as on the chart.
5«✎ Правка»: поменять месяц, разница уходит в базовую линию, пишется в журнал.
5"✎ Edit": change a month, the difference goes to the base line, logged in the journal.
6«⬇ Excel»: выгрузить срез или правки. Исходный файл прогноза не перезаписывается.
6"⬇ Excel": export the slice or the edits. The source forecast file is never overwritten.
7«Откуда цифра?»: ответы из самих данных — из какого файла и шага взялось число.
7"Where's it from?": answers from the data itself — which file and step a number came from.
4

Попробуйте сами: живой мини-экранTry it: a live mini screen

Это настоящий маленький интерфейс — такой Claude Code соберёт вам за полчаса, только на ваших данных. Лимонад 0,5, три города, 8 месяцев факта и 4 месяца прогноза, тыс. л. Выберите город, месяц прогноза и поставьте новую цифру — или нажмите +10 %.

This is a real tiny interface — Claude Code will build one like it for you in half an hour, only on your data. Lemonade 0.5, three cities, 8 months of actuals and 4 months of forecast, k L. Pick a city and a forecast month and set a new number — or press +10%.

Что заметитьWhat to notice 1) Правка на уровне «Все города» раскладывается по городам пропорционально их доле — доли в строке «Доля» не меняются. 2) Правка одного города не трогает другие. 3) Меньше нуля поставить нельзя. 4) Каждая правка — строка в журнале: кто, что, уровень, было → стало. Ровно эти правила вы потом впишете в ТЗ. 1) An edit at the "All cities" level is spread over the cities in proportion to their share — the shares in the "Share" row don't change. 2) Editing one city doesn't touch the others. 3) You can't go below zero. 4) Each edit is a line in the journal: who, what, level, before → after. These exact rules go into your specification later.
5

Техзадание для Claude CodeThe specification for Claude Code

Хорошее ТЗ — половина интерфейса. Откройте Claude Code в папке проекта, включите режим плана (Shift+Tab, пока внизу не появится plan mode — урок 15-25) и вставьте текст ниже. Поменяйте имена файлов и список фильтров под себя.

A good specification is half the interface. Open Claude Code in the project folder, switch on plan mode (Shift+Tab until plan mode shows at the bottom — lesson 15-25) and paste the text below. Change the file names and the filter list to yours.

ТЗ для копированияSpecification to copy
Нужен экран для прогноза ML отдела планирования «Долины напитков».
КТО ПОЛЬЗУЕТСЯ: 6 планеров и руководитель. Не программисты. Открывают файл двойным щелчком с общего диска.
ДАННЫЕ:
- input/forecast_ml.xlsx — прогноз ML, город × SKU × месяц, тыс. л, 18 месяцев вперёд;
- input/sales.xlsx — факт за 24 месяца, тот же уровень;
- input/baseline.xlsx — чистая базовая линия (из навыка очистки);
- input/sku_list.xlsx — справочник SKU: код, название, суббренд, страна.
Исходные файлы только читать. Ничего в них не менять.
ЧТО НА ЭКРАНЕ:
1. Слева фильтры: страна, город, суббренд, SKU. По умолчанию «Все».
2. Плитки: прогноз на год, рост к прошлому году в %, точность прошлых прогнозов (DFA).
3. График по месяцам: факт, чистая база, прогноз ML. Подписи в тысячах литров.
4. Таблица город × месяц под графиком.
5. Кнопка «✎ Правка»: меняю цифру месяца на текущем срезе.
6. Кнопка «⬇ Excel»: выгрузка текущего среза и журнала правок.
7. Вкладка «Откуда цифра?»: для каждой плитки — из какого файла и шага число.
ПРАВИЛА ПРАВКИ:
- разница уходит в базовую линию, блоки (промо и т. п.) не трогать;
- разносить по строкам город × SKU пропорционально их текущим значениям, доли сохраняются, ничего не уходит в минус;
- править только месяцы прогноза, факт заблокирован;
- журнал правок: кто, когда, срез, месяц, было, стало. Каждая правка — отдельная строка;
- правки выгружаются отдельным листом Adjusted_Forecast в новый файл. Исходник не перезаписывать.
ТЕХНИКА:
- один HTML-файл, без сервера и без интернета. Все библиотеки — внутри файла;
- ключ API внутрь не класть никогда;
- никаких абсолютных путей: только от папки скрипта, чтобы работало у любого коллеги;
- extract.py → data.json → build.py → forecast_ui.html, всё запускается RUN_forecast_ui.bat;
- выгрузка в Excel: числа числами, без заливок.
ПРОВЕРКА: после сборки покажи итог прогноза и факта по каждой стране в HTML и в исходных файлах. Должны совпасть до единицы. Если нет — остановись и скажи, где разница.
КАК РАБОТАЕМ: сначала покажи план — какие файлы создашь и что в каждом. Если что-то непонятно — задавай вопросы по одному. Код пиши только после моего «да».
I need a screen for the ML forecast of the Valley Beverages planning team.
WHO USES IT: 6 planners and a manager. Not programmers. They open the file with a double click from the shared drive.
DATA:
- input/forecast_ml.xlsx — ML forecast, city × SKU × month, k L, 18 months ahead;
- input/sales.xlsx — actuals for 24 months, same level;
- input/baseline.xlsx — clean base line (from the cleaning skill);
- input/sku_list.xlsx — SKU lookup: code, name, sub-brand, country.
Read the source files only. Never change them.
ON THE SCREEN:
1. Filters on the left: country, city, sub-brand, SKU. Default "All".
2. Tiles: forecast for the year, growth vs last year in %, accuracy of past forecasts (DFA).
3. Monthly chart: actuals, clean base, ML forecast. Labels in thousand litres.
4. A city × month table under the chart.
5. An "✎ Edit" button: I change a month's number on the current slice.
6. An "⬇ Excel" button: export the current slice and the edit journal.
7. A "Where's it from?" tab: for each tile — which file and step the number comes from.
EDITING RULES:
- the difference goes to the base line, don't touch the blocks (promo etc.);
- spread over city × SKU rows in proportion to their current values, shares are kept, nothing goes negative;
- edit only forecast months, actuals are locked;
- edit journal: who, when, slice, month, before, after. Each edit is a separate line;
- edits are exported as a separate sheet Adjusted_Forecast in a new file. Never overwrite the source.
TECHNICAL:
- one HTML file, no server and no internet. All libraries inside the file;
- never put an API key inside;
- no absolute paths: only relative to the script folder, so it works for any colleague;
- extract.py → data.json → build.py → forecast_ui.html, all run by RUN_forecast_ui.bat;
- Excel export: numbers as numbers, no fills.
CHECK: after the build, show the forecast and actuals totals per country in the HTML and in the source files. They must match to the unit. If not, stop and tell me where the difference is.
HOW WE WORK: first show the plan — which files you'll create and what's in each. If anything is unclear, ask questions one at a time. Write code only after my "yes".
Почему ТЗ такое длинноеWhy the specification is so long Каждая строка ТЗ закрывает ошибку, которую Claude иначе сделает «по догадке»: возьмёт библиотеку из интернета (у коллеги без сети экран пустой), пропишет путь к вашей папке (у коллеги «файл не найден»), при правке перезапишет исходник. Правила правки — самая ценная часть: их знаете только вы. Each line closes off a mistake Claude would otherwise make "by guess": load a library from the internet (a colleague offline sees an empty screen), hard-code a path to your folder (a colleague gets "file not found"), overwrite the source when editing. The editing rules are the most valuable part: only you know them.
6

По шагам: от ТЗ до ссылки коллегамStep by step: from specification to a link for colleagues

Шаг 1. ТЗ в режиме плана.Step 1. The specification in plan mode. Вставьте ТЗ. Claude покажет план и задаст вопросы — отвечайте по одному. Читайте план: есть ли в нём сверка итогов и запрет менять исходники? Нет — допишите. Только потом «да». Paste the specification. Claude shows a plan and asks questions — answer one at a time. Read the plan: does it include the total check and the ban on changing sources? If not, add them. Only then say "yes".
Шаг 2. Первая версия — минимум.Step 2. The first version — the minimum. Попросите сначала только фильтр, график и таблицу: «Сделай первую версию: только фильтры, график и таблица город × месяц. Плитки, правку и Excel — потом». Маленький экран легко проверить. Ask for only the filter, chart and table first: "Build the first version: only the filters, chart and city × month table. Tiles, editing and Excel come later." A small screen is easy to check.
Шаг 3. Сверка цифр — до красоты.Step 3. Reconcile the numbers — before polish. Откройте HTML, поставьте «Все». Сравните итог года с итогом в Excel (сумма колонки или сводная таблица). Потом один город и один SKU. Совпало до единицы — идём дальше. Нет — «итог в HTML 3 412, в Excel 3 398, найди разницу, ничего не исправляй, пока не покажешь причину». Open the HTML, set "All". Compare the year total with the total in Excel (a column sum or a pivot table). Then one city and one SKU. Matches to the unit — move on. If not: "the HTML total is 3,412, Excel is 3,398, find the difference, don't fix anything until you show me the cause".
Шаг 4. По одной функции за раз.Step 4. One feature at a time. Короткая правка → пересборка → вы смотрите. Готовые короткие запросы — ниже. A short edit → rebuild → you look. Ready short requests are below.
Шесть коротких правокSix short edits
1. Добавь фильтр SKU под суббрендом; список SKU зависит от выбранного суббренда.
2. Все подписи и плитки — в тысячах литров, одна цифра после запятой, пробел между тысячами.
3. Добавь плитки: прогноз на год, рост к прошлому году, точность DFA. Под каждой — мелко, из какого файла.
4. Добавь кнопку «⬇ Excel»: выгрузи текущий срез, числа числами, без заливок. Имя файла — что выгружено и все фильтры.
5. Добавь правку месяца по правилам из ТЗ и вкладку «Правки» с журналом.
6. Добавь вкладку «Откуда цифра?»: для каждой плитки — файл, шаг и формула словами.
1. Add an SKU filter under the sub-brand; the SKU list depends on the chosen sub-brand.
2. All labels and tiles in thousand litres, one decimal, a space between thousands.
3. Add tiles: forecast for the year, growth vs last year, DFA accuracy. Under each — in small print, which file it comes from.
4. Add an "⬇ Excel" button: export the current slice, numbers as numbers, no fills. File name — what was exported and all the filters.
5. Add month editing according to the rules in the specification and an "Edits" tab with the journal.
6. Add a "Where's it from?" tab: for each tile — the file, step and formula in words.
Шаг 5. Кнопка пересборки.Step 5. A rebuild button. «Сделай RUN_forecast_ui.bat: только латиница, переходит в свою папку, запускает extract.py и build.py, в конце печатает итоги и pause». Или упакуйте в навык /forecast-ui по уроку 15-28: «пересобери экран, сверь итоги, скажи, что изменилось с прошлого раза». "Make RUN_forecast_ui.bat: Latin characters only, changes to its own folder, runs extract.py and build.py, prints the totals at the end and pause." Or package it as a /forecast-ui skill as in lesson 15-28: "rebuild the screen, reconcile the totals, tell me what changed since last time".
Шаг 6. На общий диск и ссылку коллегам.Step 6. To the shared drive and a link for colleagues. Положите forecast_ui.html в общую папку отдела (OneDrive / SharePoint). Попросите одного коллегу открыть его со своего ноутбука — это главная проверка. Потом отправьте ссылку всем: «Экран прогноза, обновляется каждый понедельник». Put forecast_ui.html in the team's shared folder (OneDrive / SharePoint). Ask one colleague to open it from their own laptop — that is the key test. Then send the link to everyone: "Forecast screen, updated every Monday."
7

Два пути: артефакт в чате или Claude CodeTwo paths: an artifact in chat or Claude Code

Артефакт в чате (урок 15-15)Artifact in chat (lesson 15-15)Claude Code + скрипт сборкиClaude Code + build script
СкоростьSpeed5 минут5 minutesполдня на первую версиюhalf a day for the first version
ДанныеDataвставляете руками, каждый раз зановоpasted by hand, every time againобновляются кнопкой .bat из свежих выгрузокrefreshed by the .bat button from fresh exports
Где живётWhere it livesв claude.aiin claude.aiфайл на вашем общем дискеa file on your shared drive
ОбъёмVolumeдесятки–сотни строкtens to hundreds of rowsдесятки тысяч строк город × SKU × месяцtens of thousands of city × SKU × month rows
Когда братьWhen to useразовый вопрос, показать идею, прототипa one-off question, showing an idea, a prototypeэкран, которым команда пользуется каждый месяцa screen the team uses every month

Удобная связка: нарисуйте прототип артефактом в чате на 20 строках, покажите коллегам, соберите замечания — и только потом отдайте ТЗ в Claude Code.

A handy combination: sketch a prototype as a chat artifact on 20 rows, show it to colleagues, collect feedback — and only then hand the specification to Claude Code.

8

«А можно встроить в экран живого Claude?»"Can we build a live Claude into the screen?"

Технически — да, через ключ API. Но ключ должен лежать внутри HTML, а HTML — это текст. Любой, кто откроет файл Блокнотом, увидит ключ и сможет тратить деньги компании от вашего имени. Файл на общем диске видят десятки людей. Поэтому ответ: ключ в HTML — никогда.

Technically — yes, via an API key. But the key has to sit inside the HTML, and HTML is text. Anyone who opens the file in Notepad sees the key and can spend company money in your name. Dozens of people see a file on the shared drive. So the answer: a key in HTML — never.

💡 Вкладка «Откуда цифра?»💡 A "Where's it from?" tab

Большинство вопросов к экрану — «откуда эта цифра». На них отвечают сами данные: «Прогноз FY = сумма прогноза ML по 12 месяцам, файл forecast_ml.xlsx, шаг extract». Claude Code соберёт такие ответы при сборке — без ключа и без интернета.

Most questions to a screen are "where does this number come from". The data itself answers them: "Forecast FY = sum of the ML forecast over 12 months, file forecast_ml.xlsx, extract step." Claude Code builds these answers at build time — no key, no internet.

📋 Кнопка «Скопировать для Claude»📋 A "Copy for Claude" button

Для сложного вопроса кнопка копирует в буфер текущий срез и его цифры: «Ветровск, Лимонад 0,5, янв 2027: прогноз 15,0, год назад 13,2…». Вы вставляете это в обычный чат Claude и спрашиваете. Данные уходят только туда, куда вы сами вставили.

For a hard question the button copies the current slice and its numbers to the clipboard: "Vetrovsk, Lemonade 0.5, Jan 2027: forecast 15.0, a year ago 13.2…". You paste it into a normal Claude chat and ask. The data goes only where you paste it.

9

Тренажёр: что ответить Claude?Drill: what do you tell Claude?

Claude Code предлагает решения. Выберите, как правильно ответить.

Claude Code proposes solutions. Choose the right reply.

10

Перед отправкой коллегам: отметьте галочкойBefore sending it to colleagues: tick it off

11

Практика: экран на учебном файлеPractice: a screen on a training file

Учебный прогноз «Долины напитков»: 3 города × 2 SKU × 6 месяцев (ноябрь 2026 – апрель 2027), тыс. л. Скачайте файл и положите в папку input нового проекта.

A Valley Beverages training forecast: 3 cities × 2 SKUs × 6 months (November 2026 – April 2027), k L. Download the file and put it in the input folder of a new project.

Задание 1. Первая версия.Task 1. The first version. Дайте Claude Code сокращённое ТЗ из раздела 5: один файл прогноза, фильтры город и SKU, график и таблица город × месяц. Режим плана, ответы на вопросы, потом «да». Give Claude Code a shortened specification from section 5: one forecast file, city and SKU filters, a chart and a city × month table. Plan mode, answer the questions, then "yes".
Задание 2. Сверка.Task 2. Reconciliation. Проверьте итоги в экране: по каждому городу за 6 месяцев и общий. Сравните с ключом. Check the totals on the screen: each city over 6 months and the grand total. Compare with the key.
Задание 3. Правка +10 %.Task 3. A +10% edit. Попросите добавить правку месяца по правилам ТЗ. Поставьте «Все города, все SKU» и поднимите март 2027 на 10 %. Проверьте: доли городов не изменились, каждая строка выросла ровно на 10 %, в журнале одна строка. Ask for month editing by the specification's rules. Set "All cities, all SKUs" and raise March 2027 by 10%. Check: city shares didn't change, each row grew by exactly 10%, one line in the journal.
Ключ с ответамиAnswer key

Итоги за ноябрь – апрель, тыс. л:

Totals for November – April, k L:

ГородCityВода 1,5Water 1.5Лимонад 0,5Lemonade 0.5ИтогоTotal
ВетровскVetrovsk259147406
БереговойBeregovoy191100291
КаменскKamensk12967196
ВсегоTotal579314893

По месяцам (все города): ноя 137 · дек 124 · янв 129 · фев 145 · мар 167 · апр 191.

By month (all cities): Nov 137 · Dec 124 · Jan 129 · Feb 145 · Mar 167 · Apr 191.

Март +10 %: 167 → 183,7. Ветровск 76 → 83,6 (вода 52,8, лимонад 30,8); Береговой 54 → 59,4 (38,5 и 20,9); Каменск 37 → 40,7 (26,4 и 14,3). Доли до и после одинаковые: 45,5 % · 32,3 % · 22,2 %. Итог полугодия 893 → 909,7.

March +10%: 167 → 183.7. Vetrovsk 76 → 83.6 (water 52.8, lemonade 30.8); Beregovoy 54 → 59.4 (38.5 and 20.9); Kamensk 37 → 40.7 (26.4 and 14.3). Shares before and after are the same: 45.5% · 32.3% · 22.2%. The six-month total 893 → 909.7.

Если итог в экране другой — скорее всего, экран считает не все строки (фильтр по умолчанию не «Все») или файл прочитан с неправильным разделителем. Попросите Claude показать число прочитанных строк: должно быть 36.

If the screen shows a different total, most likely it doesn't count all rows (the default filter isn't "All") or the file was read with the wrong separator. Ask Claude to show the number of rows read: it should be 36.

12

Частые ошибкиCommon mistakes

ОшибкаMistakeКак правильноDo this instead
Поправили extract.py, а экран показывает староеFixed extract.py, but the screen shows old numbersЗапускать всю цепочку через .bat, смотреть HTML, а не data.jsonRun the whole chain via the .bat, look at the HTML, not data.json
Ключ API вписали в HTML «чтобы был чат»Put an API key in the HTML "to have a chat"Никогда. Вкладка «Откуда цифра?» + кнопка «Скопировать для Claude»Never. A "Where's it from?" tab + a "Copy for Claude" button
У коллеги «файл не найден»A colleague gets "file not found"В скрипте путь к вашей личной папке. Пути — только от папки скриптаThe script has a path to your personal folder. Paths only relative to the script folder
У коллеги без сети пустой экранA colleague offline sees an empty screenБиблиотека грузилась из интернета. Попросите вшить её в файлA library was loaded from the internet. Ask to embed it in the file
50 функций одним запросом50 features in one requestМинимум → сверка → по одной функции с пересборкойMinimum → reconcile → one feature at a time with a rebuild
Красивый экран, цифры никто не сверялA beautiful screen, nobody checked the numbersИтог по стране, городу и SKU — с Excel, до единицы, до показа людямTotals by country, city and SKU — against Excel, to the unit, before showing people
Правка экрана перезаписала исходный прогнозAn edit on the screen overwrote the source forecastПравки — отдельным листом Adjusted_Forecast в новый файлEdits go to a separate Adjusted_Forecast sheet in a new file
13

Что запомнитьWhat to remember

14

Проверьте себяCheck yourself

15

ШпаргалкаCheat sheet

ЦепочкаThe chainвыгрузки → extract.py → data.json → build.py → forecast_ui.htmlexports → extract.py → data.json → build.py → forecast_ui.html
КнопкаThe buttonRUN_forecast_ui.bat или навык /forecast-uiRUN_forecast_ui.bat or a /forecast-ui skill
НачатьTo startТЗ в режиме плана (Shift+Tab), вопросы по одномуThe specification in plan mode (Shift+Tab), questions one at a time
ПорядокOrderминимум → сверка с Excel → по одной функцииminimum → reconcile with Excel → one feature at a time
ПравкаEditв базовую линию, по долям, журнал, лист Adjusted_Forecastto the base line, by shares, journal, Adjusted_Forecast sheet
НельзяNeverключ API в HTML, личные пути, библиотеки из интернетаan API key in HTML, personal paths, libraries from the internet
Вместо чатаInstead of a chat«Откуда цифра?» + «Скопировать для Claude»"Where's it from?" + "Copy for Claude"
Итог урокаLesson summary Экран прогноза — это один HTML-файл с вшитыми данными: открывается с общего диска, не требует сервера, интернета и ключа. Claude Code собирает его по вашему ТЗ цепочкой extract → data.json → build, которая запускается одной кнопкой. Начинайте с минимума, сверяйте итоги с Excel до единицы и только потом добавляйте функции по одной. Правила правки — доли, журнал, отдельный лист — задаёте вы, и это самая ценная часть ТЗ. A forecast screen is one HTML file with embedded data: it opens from the shared drive and needs no server, internet or key. Claude Code builds it from your specification with the extract → data.json → build chain, run with one button. Start with the minimum, reconcile totals with Excel to the unit, and only then add features one at a time. The editing rules — shares, journal, separate sheet — are set by you, and they are the most valuable part of the specification.
Made on
Tilda