Огляд
Прийнятий напрям · вирішено 2 жовтня 2026, доповнено 5, 6 і 11 жовтня 2026 · вхід, ролі, магазини, людей і запрошення створено 6 і 11 жовтня 2026, новий зовнішній вигляд, екрани графіків, запити на зміни й демо екрана асистента за сценарієм — 11 жовтня 2026, замість нього вкладка Assistant з 14 жовтня 2026 показувала «In development», асистента знову ввімкнено — живий чат з агентом магазину там, де API каже, що він доступний, демо за сценарієм видалено, асистент магазину на сторінках магазину — 19 жовтня 2026, перевірено лише з локальним Agentfy, спільне ядро API (команди, сесії, запрошення та скидання пароля листом, API-ключі) — 15 жовтня 2026, денний вигляд графіка й аркуш місяця — 16 жовтня 2026, окремий адмін-застосунок для налаштувань — 18 жовтня 2026, права керівника у своєму магазині — 19 жовтня 2026, власники входять лише після схвалення адміністратором платформи — 23 жовтня 2026, більше нічого не реалізовано, нічого не розгорнуто · керівник необов’язковий для працівника 23 жовтня 2026, не розгорнуто · список посад власника 30 жовтня 2026, не розгорнуто · локальне демо пише лише make seed — 30 жовтня 2026
Погоджене рішення — один застосунок і для керівників, і для працівників: у браузері та, поки що, на телефонах через Capacitor, — а за ним один API. З усього цього створено лише вхід, три ролі (власник, керівник, працівник), магазини, людей, запрошення, графіки й запити на зміни — в API, а в застосунку магазини й люди власника, меню кожної ролі, графіки, які може бачити кожна роль, рішення щодо запитів і стеження за ними, і чат асистента з агентом кожного магазину на Agentfy, перевірений лише з локальним Agentfy, — і нічого не розгорнуто.
Один застосунок, три ролі. Власник, керівник і працівник відкривають той самий застосунок і бачать різні його частини.
З чого це складається
| Частина | Що вона робитиме | Статус |
|---|---|---|
| Застосунок | Тут керівник описує магазин, перевіряє та публікує графік, а працівник бачить свої зміни й просить про зміни в графіку. Одна кодова база на Nuxt. | Прийнятий напрям; вхід, реєстрацію власника, екрани магазинів і людей власника, меню кожної ролі, екрани графіків і екрани запитів створено (11 жовтня 2026), не розгорнуто — див. Що створено |
| Мобільний застосунок | Той самий застосунок, упакований для iOS та Android за допомогою Capacitor. | Прийнято на зараз, не створено |
| Адмін-застосунок | Тут власні адміністратори платформи Shiffty — не власник, не керівник і не працівник — ведуть налаштування платформи (Settings: підключення до Agentfy та його ключі), а з 23 жовтня 2026 відповідають на заявки власників на приєднання. Окремий застосунок на Nuxt поруч з API та застосунком, як в інших наших продуктах; нікого іншого він не пускає. | Створено (18 жовтня 2026, SHIF-36), не розгорнуто — див. Що створено |
| API | Зберігає магазини, команди, правила, графіки та запити на зміни; усе, що показує застосунок, надходить із нього. На NestJS, на тому самому ядрі, що й наші інші продукти. | Прийнятий напрям; облікові записи, вхід, ролі, магазини, людей, запрошення, графіки й запити на зміни створено (6 і 11 жовтня 2026), спільне ядро (15 жовтня 2026), не розгорнуто — див. Що створено |
| Агент магазину | Агент, з яким говорять керівник і працівники магазину. Працює на платформі Agentfy, по одному агенту на магазин; сам чат малюється всередині застосунку. | Прийнятий напрям (5 жовтня 2026); налаштування агента магазину й чат створено (13 і 19 жовтня 2026), перевірено лише з локальним Agentfy, розміщений Agentfy не під'єднано, не розгорнуто — див. Інтеграцію з Agentfy |
| Сервер інструментів (MCP) | Його запускає Shiffty поруч з API: єдині двері, через які агент магазину дотягується до інструментів Shiffty — з особою людини, з якою він говорить. | Прийнятий напрям (5 жовтня 2026); створено в API із сімома інструментами, перевірено лише з локальним Agentfy, не розгорнуто — див. Інтеграцію з Agentfy |
| Агент складання графіка та розв'язувач | Перетворюють прохання людей на обмеження, будують графік і пояснюють результат. | Гіпотеза; перший розв'язувач створено в API (19 жовтня 2026), його інструменти в каталозі агента, не розгорнуто — див. Агент і розв'язувач |
| Асистент для працівників | Приймає прохання про зміну звичайними словами, перевіряє правила й готує одне рішення для керівника. | Пропозиція; демо його екрана за сценарієм створено 11 жовтня 2026, приховано з 14 жовтня й видалено 19 жовтня 2026; живий чат з агентом магазину створено 19 жовтня 2026, перевірено лише з локальним Agentfy, не розгорнуто — див. Асистент для працівників |
Як частини будуть пов'язані — це цільова схема, а не працююча система:
Керівник Працівник
\ /
┌───────────────────────────────┐
│ Застосунок (Nuxt) │ браузер · iOS та Android
│ одна кодова база, дві ролі │ через Capacitor
└───────────────┬───────────────┘
│
┌───────────────┴───────────────┐ повідомлення ┌─────────────────────┐
│ API (NestJS) │ ───────────▸ │ Агент магазину │
│ MCP-сервер · розв'язувач │ ◂─────────── │ на Agentfy │
└───────────────────────────────┘ інструменти └─────────────────────┘Один застосунок на телефонах, через Capacitor — поки що
Мобільний застосунок — не другий продукт. Це той самий застосунок, який керівник може відкрити в браузері, упакований для iOS та Android за допомогою Capacitor, а не написаний двічі як нативні застосунки.
Що це означає для людей, які ним користуються:
- Керівник і працівник встановлюють той самий застосунок. Що побачить кожен із них, визначає роль в обліковому записі.
- Керівник може працювати і в браузері. Це той самий застосунок, а не окрема панель адміністратора.
- «Поки що» — частина рішення. Capacitor — вибір для старту, а не назавжди. Що змусить нас його замінити і на що, не вирішено.
Лишається відкритим: як застосунок розповсюджується, як люди дізнаються про новий графік чи про рішення, яке на них чекає, і чи працює щось без зв'язку. Чи зможуть працівники писати ще й із месенджера, яким уже користуються (Telegram, Viber, WhatsApp), — відкрите питання.
Як буде організовано код
NestJS для API та Nuxt для застосунку, організовані за CleanSlice — угодою, за якою побудовано інші наші продукти: код згруповано за можливостями продукту, а не за технічними шарами.
Це вибір інструментів, а не проєкт функцій. Перший начерк того, що зберігатиметься і що побачать люди, — на сторінках Структура даних та Екрани.
Що створено
У репозиторії є перша робоча частина застосунку та API — і лише вона. 11 жовтня 2026 її перебудовано навколо рішення власника про те, хто на кого працює; списку компаній, сторінок компаній і записів працівників від 6 жовтня більше немає.
- Власник подає заявку на приєднання з іменем, назвою свого бізнесу, поштою та паролем, а за бажанням — з телефоном і кількістю магазинів; бізнес стає його командою (до 15 жовтня 2026 — компанією). Самі реєструються лише власники. З 23 жовтня 2026 (рішення власника проєкту) реєстрація — це заявка: власник не може увійти, доки адміністратор платформи не схвалить її в розділі Requests адмін-застосунку. Спроба увійти раніше відповідає, що заявка на розгляді; після відмови — що заявку відхилено, з причиною адміністратора, якщо він її вказав. Заявник отримує лист, коли заявка надійшла і коли на неї відповіли; кожен адміністратор платформи отримує лист лише про те, що надійшла нова заявка і від кого (ім'я, бізнес, пошта). Відхилений заявник може подати заявку знову з тією самою поштою; відхилена заявка лишається в історії. Адміністратор платформи може вимкнути схвалену компанію й увімкнути її знову: поки вона неактивна, її власник і всі її люди не можуть увійти й бачать причину, їхні сесії завершуються, API-ключі й асистент перестають працювати; нічого не видаляється, а після ввімкнення доступ повертається. Схвалення робить компанію активною і, якщо Shiffty підключено до Agentfy, підключає асистента компанії (Інтеграція з Agentfy). Власники, зареєстровані раніше, вважаються схваленими. Перевірено автотестами API й один раз у робочій копії; не розгорнуто.
- Усі входять за поштою та паролем і потрапляють у частину застосунку своєї ролі: власник — на
/owner, керівник — на/manager, працівник — на/me. Кожна роль має меню з прототипу — у власника Assistant, Stores, People, Schedules і Requests; у керівника Assistant, Schedules, People (з 19 жовтня 2026) і Requests; у працівника Assistant, My shifts, My requests і Waiting for you — і меню облікового запису з іменем, роллю та виходом (Sign out). Що показує вкладка Assistant — нижче; людина потрапляє на неї, коли асистент їй доступний, а інакше на Schedules (власник, керівник) або My shifts (працівник) (19 жовтня 2026). - Власник бачить свої магазини картками — адреса, години роботи, скільки керівників і працівників, хто керівники, — відкриває магазин і бачить його керівників і працівників, у кожного працівника — його керівник, і створює магазин із назвою, адресою, годинами роботи й часовим поясом.
- Власник бачить усіх людей на екрані People з фільтром за роллю та магазином: у кожного магазин, керівник і статус.
- Список посад власника (30 жовтня 2026, на прохання власника): на People → Positions власник заводить посади бізнесу — «Касир», «Комірник», «Заступник керівника» — кожна з назвою й описом для асистента, перейменовує їх і архівує. Один список для всіх магазинів. Посаду людини обирають з нього в запрошенні та у вікні людини й ніколи не вписують; керівник обирає її своїм людям і не може змінювати список. Архівна посада лишається в тих, хто її має, і не пропонується нікому новому. Уписані раніше посади стали посадами списку, нічого не втрачено (Структура даних).
- Власник запрошує керівника або працівника до одного зі своїх магазинів — з екрана People або зі сторінки магазину. Працівник підпорядковується керівникові цього магазину, вибраному у формі, або жодному (необов’язково з 23 жовтня 2026, рішення власника); у запрошенні від керівника працівник підпорядковується йому, якщо той не вибрав іншого керівника, — без керівника працівника залишає лише власник. З 15 жовтня 2026 посилання надходить людині листом; діалог теж один раз показує його, щоб скопіювати й передати, якщо лист не дійшов. На екрані People видно ще відкриті запрошення; власник може відкликати те, що ще очікує відповіді або прострочене.
- Права керівника у своєму магазині (19 жовтня 2026, рішення власника): у своєму магазині й лише для його працівників — ніколи для іншого керівника й ніколи для себе — керівник деактивує й знову активує людину, призначає їй іншого керівника того самого магазину, запрошує працівників і відкликає ці запрошення, змінює години роботи й опис магазину. Раніше все це було у власника; у власника лишаються всі права. Керівник має вкладку People з людьми свого магазину (неактивні — наприкінці списку, щоб знову зробити їх активними) і його відкритими запрошеннями, діалог Invite employee, закріплений за його магазином, поля Reports to і Status у діалозі людини та Edit на сторінці магазину — лише години й опис; назва, адреса, часовий пояс і статус лишаються за власником. Нові години не приймаються, якщо зміни опинилися б поза ними, як і для власника. Кожна з цих змін, зокрема власникова, записується: хто її зробив, якого виду була зміна й які поля змінилися — але ніколи не значення. Перевірено автотестами API; не розгорнуто.
- Запрошена людина відкриває посилання, бачить магазин, роль і те, кому підпорядковуватиметься, задає пароль і потрапляє на сторінку своєї ролі. Посилання спрацьовує один раз і діє сім днів; прострочене, використане або відкликане посилання каже, що саме з цих трьох сталося.
- Забутий пароль (15 жовтня 2026): зі сторінки входу веде форма, яка надсилає листом одноразове посилання на годину; воно відкриває сторінку, де вибирають новий пароль, і це завершує вхід усюди.
- Спільне ядро API (15 жовтня 2026, SHIF-25): та сама основа, що й у наших інших продуктів, тож вони читаються й помиляються однаково. Усі маршрути — під
/api; кожна відповідь —{ success, data }, кожна відмова називає сталий код, повідомлення та id запиту; списки надходять сторінками. Вхід відкриває сесію, яку можна завершити з боку сервера, а крадіжка старого токена оновлення її завершує. Компанія стала командою з ролями — власник, адміністратор, учасник — з API-ключами для програм і передачею власності, а роль адміністратора платформи відкриває налаштування — з 18 жовтня 2026 в адмін-застосунку (нижче). Пошта в production іде через Resend, а на машині розробника — до локальної скриньки. Застосунок говорить з API через клієнт, створений за описом самого API. З цього людям видно лише запрошення листом і сторінки пароля; команди, ролі, крім власника, API-ключі та передача власності є лише в API. Див. Структура даних. - Налаштування в окремому адмін-застосунку (18 жовтня 2026, SHIF-36): налаштування платформи пішли із застосунку в окремий адмін-застосунок — так, як їх тримають інші наші продукти. Він має власний вхід із тими самими обліковими записами; усім, хто не адміністратор платформи, там відмовляють зрозумілим повідомленням, а в застосунку вкладки Settings більше немає ні в кого. Самі налаштування не змінилися — ті самі поля, кнопки й API. Перевірено лише на машині розробника (вхід адміністратором зі збереженням зміни та відмова власнику демо-компанії); не розгорнуто. З 23 жовтня 2026 в адмін-застосунку є й Requests: заявки власників на приєднання за статусами (очікує, схвалено, відхилено), у кожної — подробиці, Approve і Decline з необов'язковою причиною, а в схваленої компанії — Deactivate і Reactivate; адмін-застосунок відкривається на Requests.
- Графіки в API: кожен магазин має часовий пояс, а тижні кожного магазину можна прочитати — чернетка чи опублікований, триває зараз чи минув — у вигляді сітки змін із годинами й понаднормовими, разом зі змінами кожної людини та годинами «цього тижня». Зміни змінюються вручну (нижче) або коли схвалено запит на зміну. Див. Структура даних.
- Графіки на екрані (11 жовтня 2026): власник бачить тижні будь-якого магазину як одну сітку, хто коли працює, з годинами кожного — спершу керівники, потім працівники, із фільтром за роллю, керівником, людиною й ділянкою (14 жовтня 2026; до того команда й керівники були двома вкладками); керівник бачить усі тижні свого магазину — чернетку, опублікований, поточний або минулий, зі змінами, годинами й понаднормовими — і відкриває будь-який як таку саму сітку; працівник бачить свої зміни на цей і наступний тиждень, лише з опублікованих тижнів, і свою найближчу зміну. Кожен екран називає часовий пояс, у якому показано час. Асистент не може скласти чи змінити графік — у нього немає для цього інструмента, — тож жодна кнопка його про це не просить (19 жовтня 2026); графіки створюються й редагуються вручну (нижче). На тижні керівника є «Ask the assistant», доки асистент йому доступний: вона питає про графік команди на цей тиждень. Запити на зміни намальовано на сітках і в My shifts. З 16 жовтня 2026 власник і керівники можуть дивитися й на один день — як на шкалу по годинах зі звичайною кількістю чеків магазину, потрібною кількістю кас і людьми на касах і в магазині щогодини, — і на місяць як на один аркуш лише для читання, для друку; перерва зміни може казати, коли починається. Див. Екрани.
- Запити на зміни (11 жовтня 2026): запит працівника йде його керівникові (або будь-якому керівникові магазину, поки його керівник не приєднався), запит керівника — власникові, і з 23 жовтня 2026 туди ж — запит працівника без керівника; деактивований керівник передає запити, що чекають на нього, власникові. Керівник вирішує на екрані Requests, власник вирішує щодо запитів керівників на своєму; схвалення після повторної перевірки змінює зміни одним кроком, відхилення нічого не змінює, а рішення можна скасувати, поки його тиждень не закінчився. Колега, якого просять замінити чи обмінятися, відповідає у «Waiting for you»; люди стежать за своїми запитами в «My requests». Лічильники на Requests і Waiting for you та «N waiting» на картках магазинів власника змінюються після кожного рішення. Запити створюються через форму запиту (нижче), у чаті асистента, коли він доступний, — лише після того, як людина підтвердить запропоновану зміну, — або через API; перевірки — це або тексти прототипів у демо-даних, або фіксовані перевірки API, однакові для кожного запиту, і список каже «Checked against the store’s rules» (до 19 жовтня 2026 — «Checked by the assistant»). Див. Структура даних і Екрани.
- Асистента знову ввімкнено (19 жовтня 2026, рішення власника, назавжди): чи показувати його, вирішує відповідь API, яку читають під час входу й відкриття вкладки, — він доступний, коли Shiffty підключено до Agentfy, чат увімкнено й агент магазину людини готовий, — для власника, з 20 жовтня 2026, його власний агент на всю компанію (асистент власника). Якщо доступний, вкладка Assistant керівника чи працівника — живий чат з агентом його магазину (Інтеграція з Agentfy), і посилання на неї показано: «Ask the assistant» на тижні керівника, «Need a change? Ask the assistant» у My shifts, «Or ask the assistant» у My requests, а «Something is wrong» у Waiting for you відкриває її з цим запитанням. Якщо недоступний, вкладка каже звичайними словами чому й хто може це виправити, а посилання приховано. Вкладка власника каже, що асистент поки обслуговує команди магазинів, з посиланням на Stores. Сторінка магазину — у власника й «Store profile» у керівника — показує агента магазину з кнопкою «Connect assistant» або «Retry» (Екрани). Демо за сценарієм видалено з коду, запасного варіанта за сценарієм немає. Перевірено юніт-тестами застосунку й автоматичними тестами API із замінником Agentfy у пам'яті, а також у браузері зі справжнім Agentfy на машині розробника; не розгорнуто, розміщений Agentfy не під'єднано.
- Вкладка Assistant: «In development» (з 14 по 19 жовтня 2026, рішення власника від 14 жовтня): вкладка Assistant кожної ролі показувала заголовок, «In development» і одне речення: доки він не готовий, усе робиться вручну на інших вкладках. Кнопки й посилання в інших місцях, які відкрили б асистента, було приховано, а «Something is wrong» на Waiting for you лише позначало тиждень. Замінено пунктом вище.
- Асистент як демо за сценарієм (11 жовтня 2026; не показувався з 14 жовтня 2026, видалений з коду 19 жовтня 2026): на вкладці Assistant кожної ролі — чат із прототипу: привітання, що чекає на людину, підказки, листування, поле введення, — і жодного агента за ним. На кілька фіксованих запитань приходять заготовлені відповіді зі справжніми даними з API (чернетки, години, запити, власні зміни людини); на все інше — «I'm a demo and can't understand free text yet». Сам він нічого не змінює: робить лише те, що людина підтверджує в чаті, — схвалює чи відхиляє запит або надсилає запит працівника, — і каже, що це зроблено, лише після того, як API це прийняв. Щоб запропонувати колегу, API лише для читання відповідає, хто міг би взяти одну зі змін людини з тими самими фіксованими перевірками, що й запит. Кнопки в інших місцях, що ведуть до асистента, відкривають його зі своїм запитанням. Розмова живе, поки сторінку не перезавантажили. Див. Екрани.
- Уручну, доки цього не робить асистент (11 жовтня 2026, вказівка власника, що кожну дію має бути можливо виконати й без асистента): власник редагує графіки будь-якого магазину, керівник — команду свого магазину; тижні створюються порожніми або копією, редагуються й публікуються; зміни додаються, змінюються й видаляються в межах правил магазину, а відпочинок і години за договором — попередження; зміна з відкритим запитом заблокована. Працівники й керівники створюють запити через форму й відкликають їх, поки ті чекають; у керівників «My requests» і «Waiting for you» — усередині їхніх Requests. Власник редагує магазин (нові години, поза якими опинилися б зміни, не приймаються) і посаду людини (з 30 жовтня 2026 — зі списку власника), години на тиждень, керівника й статус; керівник — посаду й години на тиждень своїх людей, а з 19 жовтня 2026 також керівника й статус будь-якого працівника свого магазину та години роботи й опис магазину. Див. Структура даних.
- Інструменти змін (14 жовтня 2026): зміна має перерву, і всі підрахунки годин використовують відпрацьовані години (тривалість мінус перерва); кожен магазин має до десяти шаблонів змін, які пропонують діалог зміни й порожній день сітки, — ними керують власник і керівники магазину; а API разом із кожним тижнем віддає дні, коли частину годин роботи немає чергового керівника, — це показано над сіткою й у підтвердженні перед публікацією, яку воно не блокує, — і попереджає в перевірках запиту, якщо схвалення відкриє такий проміжок. Див. Структуру даних і Екрани.
- Профілі магазинів і людей (14 жовтня 2026): магазин має опис і погодинне навантаження — звичайну кількість чеків по годинах, з понеділка по неділю, — а людина опис; усе вводиться вручну як контекст для майбутнього асистента. Опис магазину пише власник (а з 19 жовтня 2026 і керівники магазину); погодинне навантаження редагують власник і керівники магазину; власник описує будь-кого, керівник — працівників свого магазину. Людина ніколи не бачить власного опису. Поки ніщо з цього не читається, асистентом теж. Див. Структура даних.
- Розв'язувач графіка (19 жовтня 2026): для тижня магазину пропонує зміни команди за шаблонами змін, формами, які люди вже працюють, — а з 26 жовтня 2026 і за годинами, які задає сам, коли нічого з цього не підходить, — годинами за договором і погодинним навантаженням, каже, що лишається незакритим і чому, і записує підтверджений план у чорновий тиждень, ніколи не публікуючи; зважує запит на зміну й називає потрібну заміну. HiGHS усередині API з 10 листопада 2026 (WebAssembly; до того YALPS, і його лишено запасним). Три його інструменти в каталозі агента: тиждень і рішення керівника — картки, які керівник підтверджує. Див. Агент і розв'язувач.
- Часові пояси на екранах: кожен магазин має часовий пояс, і графіки показуються за часом магазину, а не того, хто дивиться (рішення власника від 11 жовтня 2026). Форма нового магазину питає пояс, картки й сторінка магазину його показують, а строк дії запрошення показується в поясі його магазину. Години цього тижня на картці магазину й на екрані People беруться з графіків в API.
Хто що бачить — одне правило в API: власник бачить усе у своїй команді; керівник бачить свій магазин і всіх у ньому, зі своїми людьми, позначеними окремо; працівник бачить себе і свій магазин. На все інше API відповідає так, ніби цього не існує. Людина, чиє місце зроблено неактивним, усе ще може увійти, але нічого не бачить.
Локальна демо-компанія — та, що в прототипах: Morgan Retail із чотирма магазинами (три з прототипів і Central Station — кіоск на вокзалі зі своїм потоком покупців-пасажирів), сімома керівниками, тридцятьма трьома працівниками й одним запрошенням без відповіді, усе вигадане, п'ятьма тижнями графіків на магазин навколо поточного тижня й запитами на зміни з прототипів поверх них — записується на машині розробника командою make seed, яка спершу очищає базу цієї машини. З 30 жовтня 2026 (рішення власника) запуск серверів ніколи не очищає базу: до того запуск переписував демо щоразу, коли змінювався код скрипту заповнення чи тиждень, і так стирав компанії, створені в застосунку вручну. Єдине, що запуск ще заповнює, — порожня база нової робочої копії; див. local/README.md у репозиторії. Скрипт заповнення відмовляється працювати з будь-якою базою, яка не на цій машині. Коли на машині працює й локальний Agentfy, асистенти магазинів підключаються до нього, щойно локальний API відповідає, і після скидання теж (з 19 жовтня 2026; але не тоді, коли їхній профіль за цей час змінився — див. Інтеграцію з Agentfy).
Це перевірено 11 жовтня 2026 автоматичними тестами API, а також входом у браузері як власник, керівник і працівник і прийняттям запрошення, на машині розробника; екрани власника та меню трьох ролей — так само, у ширині комп'ютера й телефона; екрани графіків — так само, з браузером у трьох різних часових поясах (Europe/London, Asia/Tokyo і Pacific/Auckland): дні, «сьогодні» й час збігаються з тим, що API віддає для кожного магазину; запити — схваленням, відхиленням і скасуванням як власник і керівник та відповіддю працівника на прохання колеги, в обох ширинах, із браузером у Europe/London і Asia/Tokyo; демо асистента — модульними тестами застосунку, схваленням запиту керівника з чату власника й надсиланням обміну суботи з чату працівника, в обох ширинах, із браузером у Europe/London, Asia/Tokyo і Pacific/Auckland; редагування вручну — створенням, редагуванням і публікацією тижня як керівник, редагуванням графіка керівників, годин магазину й годин людини як власник, створенням і відкликанням запитів як працівник і керівник, в обох ширинах, із браузером у Europe/London і Asia/Tokyo. Інструменти змін перевірено 14 жовтня 2026 автоматичними тестами API та юніт-тестами застосунку й у браузері на машині розробника: тиждень із перервами та його попередження про проміжки, додавання зміни з меню шаблонів порожнього дня, підтвердження публікації, діалог зміни з шаблонами й перервою, розділ шаблонів за власника й за керівника — на ширині комп'ютера та, для тижня керівника, на ширині телефона, із браузером лише в його власному часовому поясі. Нічого з цього не розгорнуто, тож жоден магазин не може цим користуватися.
З 11 жовтня 2026 застосунок перемальовується за трьома клікабельними прототипами — для власника, менеджера і працівника; вони зберігаються в репозиторії в design/prototypes/, поза цим сайтом. Готовий зовнішній вигляд — кольори, шрифти й спільні елементи (шапка, панель вкладок, кнопки, картки, діалоги, чат), — а також екрани власника Stores, сторінка магазину й People, меню кожної ролі, екрани графіків із запитами поверх них, екрани запитів і чат асистента (демо за сценарієм з 11 жовтня, приховано з 14 жовтня, живий чат з агентом магазину з 19 жовтня 2026); форм, де вручну робиться те, що робитиме асистент, у прототипах немає, і їх зроблено невеликими в тому самому стилі. Решти екранів із прототипів немає, а люди й цифри в прототипах вигадані.
Не створено: розміщений асистент — чат працює лише з локальним Agentfy, розміщений Agentfy не під'єднано, — і асистент, який скасовує рішення чи публікує графіки сам: скасування лишається дією людини, а публікацію готує лише асистент власника, як картку, яку власник підтверджує (20 жовтня 2026); запити й правки робляться й уручну. Також не створено: інші екрани керівника і працівника, профіль, сповіщення, екрани для команд, адміністраторів, API-ключів і передачі власності та зміна ролі чи магазину людини. Статус магазину (active або inactive) — і досі наше припущення, а не вибір власника; видалити нічого не можна. Агента магазину налаштовують з його сторінки кнопкою «Connect assistant» (19 жовтня 2026); див. Інтеграція з Agentfy.
Агент і розв'язувач
Розставити людей по змінах за жорстких правил — задача оптимізації, і спеціалізовані розв'язувачі добре з нею справляються. Наше робоче припущення: мовна модель сама цієї арифметики не робить. Вона розуміє прохання, перетворює його на обмеження, викликає розв'язувач і пояснює результат. Це гіпотеза, яку мають перевірити керівники. Перший розв'язувач створено (19 жовтня 2026); на сторінці Агент і розв'язувач описано, що він робить, де його межі й чому він частина API, а не MCP-сервер.
Не вирішено
- Де зберігаються дані працівників і хто їх бачить — це треба визначити до будь-якого пілоту. Сама база — PostgreSQL на Neon через Prisma; див. Структуру даних.
- Яка мовна модель. Де працює агент, вирішено — на Agentfy, див. Інтеграцію з Agentfy, — як і розв'язувач для першої версії (YALPS); модель за агентом не обрано.
- Хостинг для застосунку та API. Сьогодні розгорнуто лише цей сайт документації; див. DevOps. Єдиний висловлений намір — що пізніший сервіс розв'язувача працюватиме в Kubernetes поруч з API.
- Чи доходить запрошення до людини інакше, ніж листом. З 15 жовтня 2026 воно надсилається листом (SHIF-25), а посилання можна й передати; месенджер чи SMS не вирішено.
- Сповіщення.
- Месенджер як другий канал для працівників.
- Інтеграції з касовими системами та лічильниками відвідувачів. Першим способом введення, найімовірніше, будуть таблиці; див. Вхідні дані.
- Що ще буде в адмін-застосунку, і публічний сайт. В адмін-застосунку поки налаштування (18 жовтня 2026) і заявки на приєднання (23 жовтня 2026); більше в ньому нічого не спроєктовано, як і публічний сайт.
Куди далі
- Шлях користувача: що керівник і працівник робитимуть у застосунку.
- Екрани: усі запропоновані екрани для обох ролей.
- Агент і розв'язувач: що рахує графік і як агент цим користуватиметься.
- Структура даних: що система зберігатиме і як це згруповано.
- Інтеграція з Agentfy: де працює агент і що треба довести спершу.
- DevOps: що розгорнуто сьогодні.
- Відкриті питання: що вирішено, а що ні.
- Два тижні до демо: план лише для вебу до 18 жовтня; Capacitor — пізніше.