AAYMA
RU
Войти

Archibalt

Challenge Hub: AI-чат уточняет бизнес-проблему и собирает карточку задачи из 10 полей с детерминированным рейтингом готовности; студенческие команды…

Доведённый продукт
Команда «archibalt» 16💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: archibalt
Кейс HackAlem.ai: Образование — AI Sana
Стадия: Доведённый продукт

Задача кейса: Challenge Hub: превратить задачу бизнеса в задание для студенческих команд

Суть

Challenge Hub: AI-чат уточняет бизнес-проблему и собирает карточку задачи из 10 полей с детерминированным рейтингом готовности; студенческие команды откликаются, бизнес вручную выбирает команду и подтверждает этапы.

Как устроено

Бизнес без входа начинает чат (WebSocket), агент задаёт 3–10 уточняющих вопросов и предлагает варианты первого результата (быстрая модель gpt-5.4-mini), затем собирает карточку (gpt-6-sol) через OpenAI Responses API. Guard проверяет карточку на выдуманные факты, при сбое срабатывает mock. Рейтинг по 7 показателям с весами из ТЗ считается чистой функцией на Go (internal/rating), AI на балл не влияет. Go net/http раздаёт API и собранный Vite/React-фронт, данные в PostgreSQL 16 (карточка и рейтинг в jsonb); есть визуальный концепт задачи через gpt-image-1.

Ключевые решения

  • OpenAI Responses API
  • guard против выдуманных фактов
  • mock-режим с повтором
  • детерминированный рейтинг
  • WebSocket-чат
  • генерация визуального концепта gpt-image-1
  • демо-OTP авторизация

Особенности

Выстроенный агентный процесс разработки: 245 коммитов, скилл jury-review, «Red Team Judge», протоколы передачи контекста между агентами, матрица приёмки и много research-файлов (конкуренты, UX, QA-кейсы рейтинга). Для уточнений и сборки карточки используются разные модели, генерируется визуальный концепт задачи.

Стек

Go · PostgreSQL 16 · React · Vite · TypeScript · Docker Compose · Makefile

Модели

gpt-6-sol · gpt-5.4-mini · gpt-image-1


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-fee6d244-archibalt.

README

README.md

Archibalt — AI Sana Challenge Hub: от бизнес-задачи к студенческой команде

Смотреть демо

Archibalt помогает бизнесу превратить описание проблемы в понятное задание, а студентам — найти реальный проект и предложить решение. AI уточняет потребность и собирает карточку; бизнес проверяет её, публикует и сам выбирает команду по откликам.

MVP для кейса «Рейтинг качества бизнес-задач и открытый выбор команд» (HackAlem AI, трек Education, задание 01). Официальное задание — TASK.md.

Какую проблему решаем

Запрос «нужно приложение для учёта заявок» ещё не объясняет, кто будет им пользоваться, какие данные есть и как проверить результат. Archibalt помогает уточнить эти сведения до начала работы со студенческой командой.

Рейтинг готовности 0–100 показывает, насколько подробно описана задача и чего не хватает. Бизнес дополняет карточку и подтверждает изменения — балл пересчитывается, позиция в каталоге обновляется. Даже на задачу с низким баллом можно откликнуться.

Как это работает

  1. Бизнес описывает проблему в чате без входа и готового ТЗ. AI задаёт минимум три уточняющих вопроса и предлагает варианты первого результата.
  2. Бизнес проверяет карточку из 10 полей: от контекста и данных до результата, критериев успеха и связи. Перед сборкой нужен демо-вход; текст можно исправить вручную.
  3. Подтверждённая задача попадает в каталог. Рейтинг объясняет начисленные баллы и подсказывает, что дописать. По умолчанию выше стоят более готовые задачи.
  4. Студенческая команда выбирает проект и отправляет идею, план, срок и ссылку на прототип. Бизнес сравнивает предложения и вручную выбирает одну, несколько или ни одной команды. За подтверждённый бизнесом этап команда получает 10 баллов.

AI помогает оформить задачу; публикация, выбор команды и подтверждение результата остаются за человеком. Проверка текста AI снижает риск выдуманных фактов, но не заменяет проверку карточки заявителем.

Команда: Абылай (архитектура, бэкенд, AI, рейтинг), Ильяс (продукт, фронтенд, данные, демо). В работе использовались AI-инструменты разработки.

Быстрый запуск (для проверки экспертами)

Нужен Docker с Compose v2 (проверка: docker compose version). Раздел одинаков для macOS, Linux и Windows. Аккаунт OpenAI и API-ключ не нужны: без OPENAI_API_KEY AI работает в локальном mock-режиме с тем же форматом входа и выхода. Для действий бизнеса и команды используется демо-вход по email или телефону с кодом 000000; код никуда не отправляется.

git clone https://github.com/BAITC-Hacks/hack-fee6d244-archibalt.git
cd hack-fee6d244-archibalt
docker compose up --build

Откройте http://localhost:8080. Оба порта слушают только 127.0.0.1: 8080 (приложение) и 5432 (Postgres). Если 8080 занят: APP_PORT=8081 docker compose up --build. Проверка, что всё живо: http://localhost:8080/api/health → {"ok":true,"db":true,"ai_mode":"mock"}.

На пустой БД автоматически появятся 5 задач, 5 команд и 5 откликов. Начните с «Обсудить задачу» на главной или откройте каталог.

Живой AI через OpenAI (по желанию): скопируйте .env.example в .env, впишите OPENAI_API_KEY, перезапустите docker compose up --build. /api/health покажет ai_mode:"openai"; при сбое OpenAI система один раз повторяет запрос, откатывается на mock и показывает mock, не роняя сценарий.

Остановить контейнеры с сохранением данных: docker compose down. Удалить локальные данные и заново загрузить демо-набор: docker compose down -v, затем docker compose up --build.

Запуск без Docker (разработка)

Раздел для macOS/Linux; на Windows используйте Docker-запуск выше. Требуется Go 1.25+, Node 22+, PostgreSQL 16 (или make db, который поднимает только БД в Docker). Команды выполняются из корня репозитория.

Терминал 1 — база и API:

make db                          # postgres на localhost:5432, пароль hack
make run                         # Go API на :8080, seed загружается при пустой БД

Терминал 2 — фронтенд:

cd web
npm ci
npm run dev                      # http://localhost:5173, proxy /api → :8080

make run не загружает .env автоматически. Для живого AI экспортируйте переменные в терминале API перед запуском. Если вы уже заполнили собственный .env из примера:

set -a
. ./.env
set +a
make run

С другой БД задайте DATABASE_URL перед make run; make db в этом случае не нужен. Проверки описаны в разделе «Тестовые сценарии» ниже.

Параметры окружения

ПеременнаяПо умолчаниюНазначение
PORT8080порт HTTP-сервера внутри контейнера; на хост Compose пробрасывает 127.0.0.1:${APP_PORT:-8080}
APP_PORT8080только для Compose: порт приложения на хосте
DATABASE_URLpostgres://postgres:hack@localhost:5432/hack?sslmode=disableстрока подключения Postgres; в Compose хост заменён на db
OPENAI_API_KEYпусто → mockключ OpenAI; не коммитить, .env в .gitignore
OPENAI_MODELgpt-6-solмодель для сборки карточки
OPENAI_MODEL_FASTgpt-5.4-mini в Composeмодель для уточняющих вопросов; при прямом запуске незаданное или пустое значение — как OPENAI_MODEL
OPENAI_IMAGE_MODELgpt-image-1модель визуального концепта (POST /api/tasks/{id}/visual)
OPENAI_IMAGE_QUALITYlowкачество визуального концепта
SEED_DIR./seedпапка с демо-данными
STATIC_DIR./web/distсобранный фронт
REQUIRE_TEAM_LOGINtruefalse — отклик без входа по team_id из тела (страховка для демо)
DEMO_OTP000000общий демо-код входа бизнеса и команд; реальная отправка не реализована
WS_ORIGINSlocalhost:*,127.0.0.1:*разрешённые Origin для WebSocket-чата, через запятую
DEV_PROXYпустоадрес Vite (http://127.0.0.1:5173) для dev без сборки фронта
TEST_DATABASE_URLпусто → тесты store пропускаютсяБД для интеграционных тестов internal/store

Compose читает .env из корня сам; пустой OPENAI_MODEL_FAST там заменяется на gpt-5.4-mini. Чтобы использовать одну модель для всех текстовых вызовов, явно задайте одинаковые OPENAI_MODEL_FAST и OPENAI_MODEL.

Архитектура

web/  (Vite + React + TS)  ──fetch /api/*──▶  Go net/http  ──database/sql──▶  PostgreSQL 16
                                              ├─ internal/http    хендлеры, валидация, SPA-раздача
                                              ├─ internal/rating  формула рейтинга (чистая функция)
                                              ├─ internal/ai      OpenAI Responses API + mock + Guard
                                              ├─ internal/store   запросы, миграция db/schema.sql, seed
                                              └─ internal/model   типы = TS-типы фронта (API_CONTRACT.md)
  • Один бинарник Go раздаёт и API (/api/*), и собранный фронт (/, SPA-fallback). Один docker compose up.
  • Две роли: «Я бизнес / Я команда» переключаются на фронте; обе входят по email или телефону с демо-кодом 000000. Разговор с агентом начинается без входа (анонимный черновик); вход заявителя нужен, чтобы выбрать вариант результата или собрать карточку, править её, публиковать и решать по откликам — задача присваивается вошедшему. Команда входит перед откликом. Смотреть каталог можно без входа. Сессии хранятся в памяти API: после перезапуска нужен повторный вход.
  • Контракт API с типами и всеми эндпоинтами: API_CONTRACT.md.
  • Схема БД: db/schema.sql — teams, tasks (карточка в jsonb, рейтинг в jsonb + score), proposals, messages (чат по отклику), task_visuals (визуальный концепт).

Сквозной сценарий (ТЗ §2) → API

ШагЭкранAPI
1 Разговор без входачат с главной («Обсудить задачу»)POST /api/tasks {draft_text, industry, mode:"dynamic"} без токена → анонимный черновик
2 Уточнение (3–10 вопросов, до 12 по запросу)тот же чатPOST /api/tasks/{id}/next-question {answer}; варианты результата POST …/result-options
2а Вход и присвоениемодалка «Войти» при сборке карточкиPOST /api/auth/business/verify → business_token; POST /api/tasks/{id}/owner {}; POST …/apply-result, POST …/answers {}
3 Карточка (редактируемая)/task/:id/editPUT /api/tasks/{id}/fields
4 Рейтинг и подсказкитам жеscore, breakdown, missing в каждом ответе
5 Публикация после подтверждениякнопка «Подтвердить и опубликовать»POST /api/tasks/{id}/confirm
6 Каталог, отклик команды/catalog, /task/:idGET /api/tasks?industry=&level=, POST /api/tasks/{id}/proposals
7 Ручной выбор бизнеса/task/:idPOST /api/proposals/{id}/select / reject
8 Баллы команде за этап/task/:idPOST /api/proposals/{id}/confirm-stage (+10 баллов команде)

Формула рейтинга готовности (ТЗ §4)

Рейтинг измеряет готовность конкретной задачи к работе со студентами, а не известность компании. Считается детерминированно в коде (internal/rating), AI на балл не влияет.

Семь показателей с весами из ТЗ, сумма 100:

ПоказательВесПоля карточкиПолный балл, если
Контекст и потребность20context, needоба поля содержательно описаны: что происходит сейчас и что нужно изменить
Данные и материалы20dataназван материал (выгрузка, таблица, CRM, API, примеры, интервью) и способ или срок передачи
Ожидаемый результат15expected_resultназван конкретный артефакт (прототип, отчёт, сервис, дашборд, модель) с функцией
Критерии успеха15success_criteriaесть число с метрикой или единицей, либо описан способ проверки
Ограничения10constraintsуказаны сроки, технологии, доступы или иные границы
Пользователи10usersназвана роль или группа, для кого решение
Связь с бизнесом10contact, interaction_formatпригодный контакт (email, Telegram, телефон) и канал с ритмом встреч или сроком ответа

Начисление на показатель: 0 — пусто, заглушка (x, -, todo, «не знаю», в том числе внутри текста), текст без признаков короче трёх значимых слов, отказ без плана («данных не будет», «встреч не будет») или телефон из одинаковых цифр; половина веса (округление вниз) — заполнено, но признак полноты не найден (например, «передадим позже» без срока и способа); полный вес — условие из таблицы выполнено, причина называет найденный признак. У составных показателей половина, если закрыто одно поле из двух. Длина текста — вспомогательный сигнал, повтор фраз и пробелы балл не поднимают.

Известное ограничение: признаки — ключевые слова и регулярные выражения, а не понимание смысла. Осмысленный текст простыми словами без ключевых признаков получит половину веса, а длинная бессмыслица в полях «контекст» и «потребность» — полный. Список правил открыт в internal/rating/rating.go и на странице «Как работает AI».

score = Σ earned. Уровни: 0–39 черновик (виден в каталоге с пометкой), 40–69 рабочая (можно откликаться и рекомендовать), 70–89 готовая (повышенная позиция), 90–100 приоритетная (выделена). Низкий рейтинг задачу не скрывает и отклик не запрещает.

breakdown объясняет каждый показатель словами, missing перечисляет, что дописать и сколько это даст (gain = weight − earned), отсортировано по выгоде. Рейтинг пересчитывается при каждом сохранении.

Предварительный и официальный балл. До ручного подтверждения балл предварительный, задачи нет в каталоге. Подтверждение публикует карточку с официальным баллом. Правка опубликованной карточки снимает её с каталога до повторного подтверждения (известное упрощение MVP: версия-снимок не хранится).

Правила каталога

  • В каталоге только подтверждённые задачи. Все видны всем командам, ограничений на просмотр нет.
  • По умолчанию: score по убыванию, при равенстве раньше опубликованная выше. В интерфейсе также есть «Сначала новые» и «Меньше откликов»; номер места на карточке остаётся местом по готовности во всём каталоге.
  • Фильтры: отрасль (industry) и уровень готовности (level). В интерфейсе есть текстовый поиск; запрос, фильтры и выбранная сортировка сохраняются в URL.
  • Отклики не лимитируются: любая команда может откликнуться на любую задачу, включая черновики.
  • Автоназначения нет: только ручные select / reject по каждому отклику; можно выбрать 0, 1 или несколько команд.
  • Начать черновик и ответить на вопросы можно без входа. После присвоения задачи вошедшему заявителю только он может менять карточку, публиковать её и принимать решения по откликам (select / reject / hold / confirm-stage). В текущем демо-наборе у всех пяти задач есть заявители; их контакты для проверки указаны ниже.
  • Рекомендации (GET /api/teams/{id}/recommended) — дополнение: пересечение навыков и интересов команды со словами карточки, только задачи от уровня «рабочая»; общий каталог они не ограничивают.

AI-функция (ТЗ §5)

Вызовы OpenAI Responses API со строгой JSON-схемой (strict: true), без SDK. Промпты и схемы — в internal/ai/prompts.go, интерфейс с пояснениями — /ai, диагностика в JSON — GET /api/ai:

  1. Вопросы: уточнить проблему, рабочий сценарий и ожидаемую пользу; минимум три вопроса. Пошаговый режим описан ниже, API также поддерживает получение списка вопросов сразу.
  2. Карточка: собрать 10 полей только из черновика и ответов; для отсутствующих сведений вернуть пустую строку.

Визуальный концепт (необязательно): после выбора варианта первого результата агент сам рисует картинку через OpenAI GPT Image (gpt-image-1, quality=low) — ключевой экран, схему процесса или пример отчёта по полям карточки; подпись «Концепт для обсуждения, не обещание объёма». Без ключа — помеченная mock-заглушка; ошибка генерации не блокирует сборку карточки (internal/ai/image.go, internal/http/visual.go).

Пошаговый режим (mode: "dynamic", эндпоинт POST /api/tasks/{id}/next-question): агент задаёт по одному вопросу с учётом всего разговора. Промпт направляет его сначала разобраться в проблеме, пользователях и рабочем процессе, затем предложить подходящий первый результат и способ проверки. Частичный ответ можно уточнить; исправления и отказ от предложенного решения учитываются в следующих вопросах. Варианты ответов служат подсказками, можно написать свой текст. Контакт разрешено дописать в редакторе.

Минимум — 3 вопроса; 10 — предохранитель от бесконечного разговора, а не обязательная длина беседы. Кнопка «Спросить ещё» позволяет продолжить до 12 вопросов всего. Код ограничивает повтор одной темы двумя вопросами и учитывает явный пропуск; ответ «данных нет» считается сведением для диалога, но не даёт баллов за готовность данных. В чате можно раскрыть предварительную карточку и её балл. Итоговую карточку собирает вызов с Guard, затем её проверяет человек. Mock использует заготовленные вопросы и правила вместо смыслового анализа моделью.

Защита от выдуманных фактов (internal/ai/guard.go, работает и для OpenAI, и для mock): каждое непустое поле, включая название, проверяется на пересечение слов с исходным текстом пользователя, а любое число должно встречаться в исходнике рядом с тем же словом («2 недели» нельзя превратить в «2 оператора»); иначе поле очищается. Последний реальный вызов с сырым ответом модели и списком вырезанных полей виден в GET /api/ai → last_call. Ограничение: для полей «контекст» и «потребность» смена смысла через отрицание словами из исходника не ловится (для остальных полей полярность проверяется), поэтому карточку подтверждает человек. Человек редактирует и подтверждает карточку до публикации.

Обработка ошибок текстового AI: таймаут 10 с на попытку, при ошибке сети, статуса или невалидного JSON один повтор, затем локальный mock с тем же форматом; текст последней ошибки виден в GET /api/ai → last_error. Mock детерминирован: вопросы по таблице ключевых слов и приоритету весов, карточка из ответов. У генерации изображения отдельный таймаут 60 с; ошибка показывается без подмены картинки mock-заглушкой.

Пример живого вызова OpenAI на слабом черновике (вопросы, собранная карточка, что вырезал Guard): docs/ai-live-sample.json; текущее состояние — GET /api/ai → last_call.

AI не выставляет баллы, не выбирает команды и не публикует задачи. Персональные признаки участников не используются.

Тестовые сценарии

Из корня репозитория:

make test                      # формула, AI, хендлеры; без внешнего AI и БД
npm --prefix web ci
npm --prefix web run build     # проверка TypeScript и сборка фронтенда

Тесты хранилища без TEST_DATABASE_URL пропускаются. Они создают и удаляют собственную временную схему, не затрагивая таблицы приложения. После make db запустите:

TEST_DATABASE_URL='postgres://postgres:hack@localhost:5432/hack?sslmode=disable' go test ./internal/store/

Go-тесты проверяют формулу (включая заглушки), AI (mock, Guard, откат при 500), хендлеры (сквозной путь и ошибки 400/404), а с тестовой БД — миграцию, seed, внешние ключи и баллы за этап.

Ручная проверка основного сценария (5 минут, всё в интерфейсе):

  1. Открыть /catalog на свежей БД: видны 5 демо-задач со всеми четырьмя уровнями от «черновик» до «приоритетная», сортировка по баллу, фильтры работают.
  2. «Обсудить задачу» на главной открывает чат сразу, без входа. Ожидаемо: агент задаёт не меньше 3 вопросов с кнопками-подсказками (в mock — по ключевым словам черновика). Агент спрашивает, чем занимается бизнес и что мешает; первое сообщение становится черновиком, например: «Нужно приложение для учёта заявок, сейчас всё в Excel и теряется». Дальше — по одному вопросу с подсказками-кнопками. Проверить, что вопросы уточняют проблему и ожидаемый результат; при непонятном ответе агент помогает уточнить тему, при явном пропуске идёт дальше. Минимум 3 вопроса, предел 10; «Спросить ещё» после завершения — до 12.
  3. После вопросов агент предлагает 2–3 варианта первого проверяемого результата (результат / как проверим / что нужно / ~недель · оценка AI). «Выбрать» → появляется модалка входа заявителя (например, [email protected], код 000000, демо-режим) — беседа сохраняется, задача присваивается вошедшему. После выбора агент сам рисует визуальный концепт (GPT Image; без ключа — помеченная заглушка), «Собрать карточку» его не ждёт. Заявители пяти стартовых задач (чтобы показать решение бизнеса по откликам на seed-данных): [email protected], [email protected], [email protected], [email protected], [email protected] — задачи 1–5 соответственно, код 000000.
  4. «Собрать карточку» → редактор: проверить соответствие текста черновику, ответам и выбранному результату. Исправить неточности, проверить незаполненные поля. Балл, разбивка по 7 показателям, список «что дописать» с +N.
  5. Дописать критерии успеха с числом («снизить время обработки на 30%») и контакт с email и ритмом созвонов → сохранить → балл вырос, уровень изменился.
  6. «Подтвердить и опубликовать» → задача в каталоге на позиции по баллу.
  7. Переключиться в режим «Я команда» → открыть задачу → отправить отклик (идея, план, срок, ссылка). Вход команды: «Я команда» → любой email или телефон (например, [email protected]) → код 000000 (демо-режим, код не отправляется, подсказка на экране); новый контакт создаёт новую команду. Второй отклик: выйти, войти как [email protected], отправить отклик на ту же задачу.
  8. Режим «Я бизнес» → вход тем же контактом, что на шаге 3 ([email protected]; для seed-задачи 1 — [email protected]) → «Мои задачи»: кто откликнулся и статусы → выбрать один отклик, отклонить другой. Можно выбрать несколько или отклонить все.
  9. (Дополнительно) «Подтвердить этап» у выбранного отклика → команде начислены баллы.

В интерфейсе и через API (см. API_CONTRACT.md): «Мои отклики» (GET /api/me); «Мои задачи» заявителя (/api/business/me: отклики с командой, статусом и датами); принятие проекта командой (accept/decline); чат команды и заявителя по отклику (REST + WebSocket). Проверки серверной логики — в internal/http/*_test.go, сценарий через curl — в контракте.

Проверка ошибок: пустой черновик → сообщение, отклик без ссылки → сообщение, /api/tasks/999 → 404.

Тот же сценарий через curl — в API_CONTRACT.md; демо-набор — в seed/. Сервер загружает tasks.json, teams.json и proposals.json; drafts.json содержит 5 исходных описаний для ручной проверки и не создаёт дополнительных задач в БД.

Служебные файлы репозитория

Код продукта: cmd/, internal/, db/, web/, seed/, Dockerfile, docker-compose.yml. Остальные Markdown-файлы в корне (кроме TASK.md с заданием и API_CONTRACT.md с контрактом API) и папка research/ — рабочие заметки команды, на запуск не влияют.

Границы MVP и ограничения

  • Есть две роли и демо-вход. Полноценная регистрация, восстановление доступа и реальная отправка email/SMS не реализованы; общий код 000000 предназначен для демонстрации.
  • Рейтинг и проверка текста AI основаны на правилах и могут ошибаться. Карточку перед публикацией проверяет человек.
  • Неопубликованную задачу можно прочитать по числовому ID; анонимный черновик до присвоения не защищён отдельным секретом.
  • Правка опубликованной карточки убирает задачу из каталога до повторного подтверждения.
  • Нет уведомлений, файлового хранилища, платежей, полного трекера проекта и инфраструктуры для промышленной эксплуатации.

Подробности и известные дефекты — в KNOWN_ISSUES.md. Текущее состояние командной приёмки — в STATUS.md.

Дальнейшее развитие

  • Куратор AI Sana как эскроу. Третья роль (модератор платформы) держит грант или оплату на холде и выпускает после того, как обе стороны подтвердили этап. Механика статусов selected → accepted → этап подтверждён уже в API, статус on_hold заложен; остаётся роль куратора и интеграция с платёжным или грантовым контуром.
  • Реальная отправка одноразовых кодов на email/SMS вместо демо-кода 000000.
  • Версия-снимок опубликованной карточки при правке, чтобы задача не пропадала из каталога.
  • Рекомендации командам по смыслу, а не по пересечению слов.

Сторонние компоненты

КомпонентЛицензияНазначение
Go stdlib (net/http, database/sql, encoding/json)BSD-3сервер, БД, JSON
github.com/jackc/pgx/v5MITдрайвер PostgreSQL
jackc/pgpassfile, jackc/pgservicefile, jackc/puddle/v2MITкосвенные зависимости pgx
golang.org/x/sync, golang.org/x/textBSD-3косвенные зависимости pgx
github.com/coder/websocketISCWebSocket-чат отклика
PostgreSQL 16 (Docker image postgres:16-alpine)PostgreSQL Licenseбаза данных
React 18, react-dom, react-router-dom 6, @types/react, @types/react-domMITфронтенд
Vite 6, @vitejs/plugin-react, TypeScript 5MIT / Apache-2.0сборка фронта
OpenAI API (Responses)по условиям OpenAIAI-вопросы и карточка; опционально
Docker-образы golang:1.26-alpine, node:22-alpine, alpine:3.22BSD-3 / MIT / смешанная (musl MIT, busybox GPL-2.0)сборка и рантайм

Транзитивные npm-зависимости — в web/package-lock.json. Демо-данные в seed/ синтетические, созданы командой. Код продукта (cmd/, internal/, db/, web/, seed/, Docker-файлы) написан во время соревновательной части 23.09.2026 13:00–18:00; до старта в репозитории были только правила хакатона, документы для AI-агентов и заметки исследования рынка (research/).

Звёзды
⭐ 0
Форки
0
Язык
Go
Последний push
в прошлом месяце
Коммиты
245
Авторы
2
Файлы
193
Ветки
2

Авторы коммитов

abylay 155iagadilov 90

История коммитов

  • 2026-09-23 18:02Зафиксировать ссылку на запись демо без приёмкиiagadilov
  • 2026-09-23 18:01Link demo recording in README and demo guideiagadilov
  • 2026-09-23 17:49Добавь скачивание ТЗ и следующий шаг после выбора командыiagadilov
  • 2026-09-23 17:49README: убери раздел про облако, запуск описан вышеabylay
  • 2026-09-23 17:48README: как задеплоить в облакоabylay
  • 2026-09-23 17:43Отметить готовность материалов демо без приёмкиiagadilov
  • 2026-09-23 17:42Match demo proposal path to new student UIiagadilov
  • 2026-09-23 17:42Add current jury hook and demo pathsiagadilov
Все коммиты (245)
  • 2026-09-23 17:41Добавь быстрый отклик, подбор проектов и уведомления студентамiagadilov
  • 2026-09-23 17:39Статус: чистый запуск и ревью README закрыты на 144989eabylay
  • 2026-09-23 17:38README по замечаниям жюри: точные версии, порты, входы в сценарии, полный список компонентов; compose без env_file, APP_PORTabylay
  • 2026-09-23 17:33Зафиксируй пересборку стенда с лендингомabylay
  • 2026-09-23 17:32Отметь фактический пробел быстрого студенческого откликаiagadilov
  • 2026-09-23 17:31Зафиксируй минимальный продуктовый путь студенческой ролиiagadilov
  • 2026-09-23 17:30Верни анимированный лендинг и навигациюabylay
  • 2026-09-23 17:24Персонализируй интерфейс для студента и бизнесаabylay
  • 2026-09-23 17:22Опиши продукт и актуализируй READMEabylay
  • 2026-09-23 17:19Направь диалог к выбору подходящего решенияabylay
  • 2026-09-23 17:19Обнови контракт и проверки динамического диалогаabylay
  • 2026-09-23 17:19Научи агента разбирать задачу и уточнять решениеabylay
  • 2026-09-23 17:15Диалог: id сообщений сразу в push — пузырь 401 гасится после входаabylay
  • 2026-09-23 17:14Статус: жюри №4abylay
  • 2026-09-23 17:14Жюри №4: сводный отчёт Chair 81/100, техотбор пройден, сырые отчётыabylay
  • 2026-09-23 17:11По жюри №4: README без противоречий про вход и гарантию, лимит генераций концепта на задачу, KNOWN_ISSUESabylay
  • 2026-09-23 17:08Устрани наложение аккаунта на навигациюabylay
  • 2026-09-23 17:07Переделай редактор задачи для понятной публикацииabylay
  • 2026-09-23 17:04Статус: QA-5 PASS, финальный SHA 5cb22bbabylay
  • 2026-09-23 17:03По QA-5: шум не попадает в варианты результата, честная причина завершения, скрывать пузырь ошибки после входаabylay
  • 2026-09-23 17:01Обнови модалку чата в стиле Codexabylay
  • 2026-09-23 16:58README: сценарий через чат без входа; KNOWN_ISSUES: концепт, анонимный черновик, heroabylay
  • 2026-09-23 16:57Обновить демо под вход и адаптивный диалог с лендингаiagadilov
  • 2026-09-23 16:57Merge: копирайт главной (агент D)abylay
  • 2026-09-23 16:56Статус: A/B/C в main, что проверено и что отложеноabylay
  • 2026-09-23 16:56Главная: шаги, рейтинг, FAQ и CTA по утверждённому копирайтуabylay
  • 2026-09-23 16:55Открывай чат задачи сразу без промежуточной страницыabylay
  • 2026-09-23 16:55Merge remote-tracking branch 'origin/main'abylay
  • 2026-09-23 16:54Merge: визуальный концепт (агент C)abylay
  • 2026-09-23 16:54Открывай чат задачи сразу без промежуточной страницыabylay
  • 2026-09-23 16:53Уточнить гейт гостевого чата и первого экранаiagadilov
  • 2026-09-23 16:53Добавь визуальный концепт выбранного результата через GPT Imageabylay
  • 2026-09-23 16:53Главная: тексты hero по копирайту, приветствие чатаabylay
  • 2026-09-23 16:52Разговор без входа: анонимный черновик, вход и присвоение при сборке карточкиabylay
  • 2026-09-23 16:52Диалог без входа: анонимная задача, вход и присвоение только при сборке карточкиabylay
  • 2026-09-23 16:52Тесты и контракт под анонимный черновикabylay
  • 2026-09-23 16:50Упростить тексты главной: продукт, прямой чат и ясный путь для жюриiagadilov
  • 2026-09-23 16:50Зафиксировать открытые выпускные гейтыiagadilov
  • 2026-09-23 16:47Документировать выпускные гейты Education MVPiagadilov
  • 2026-09-23 16:46Единый текст кнопки «Обсудить задачу»abylay
  • 2026-09-23 16:45Главная: кнопки «Обсудить задачу» и «Найти задачу» вместо поля; чат без черновика спрашивает суть первым сообщениемabylay
  • 2026-09-23 16:45Merge branch 'worktree-agent-a35226a35574ac69f'abylay
  • 2026-09-23 16:43Переделай каталог команд и добавь поискabylay
  • 2026-09-23 16:43Диалог: при коротком черновике сначала спрашивать о бизнесе и болиabylay
  • 2026-09-23 16:42Диалог: при отклонённом вопросе модели сначала ключевые пробелыabylay
  • 2026-09-23 16:41Диалог: не завершать при пробеле в ключевом поле до 5 вопросовabylay
  • 2026-09-23 16:40Шум по контексту поля: «всё», «пока ничего» — факт для данных; бессмысленный черновик не идёт в превьюabylay
  • 2026-09-23 16:39Тест: уточнение темы после шума поверх ответа моделиabylay
  • 2026-09-23 16:39Диалог: после ответа без сведений уточнять ту же тему, приоритеты в промптеabylay
  • 2026-09-23 16:37Диалог: переспрашивать поле после шума, «Спросить ещё» до 8 вопросовabylay
  • 2026-09-23 16:37Открывать диалог с агентом сразу с лендинга, убрать форму темы перед чатомabylay
  • 2026-09-23 16:30Диалог: приветствия и «не знаю» не заполняют поля превью карточки; статус по фидбеку Ильясаabylay
  • 2026-09-23 16:30docs: add requirement for real UI icons and sourced imageryiagadilov
  • 2026-09-23 16:26docs: hand off Ilyas live product feedback and acceptance scenariosiagadilov
  • 2026-09-23 16:17Рейтинг: обзор, сводка, таблица, форма — артефакты ожидаемого результатаabylay
  • 2026-09-23 16:07Статус: seed с заявителями, ответ на handoffabylay
  • 2026-09-23 16:07Seed: заявители у пяти стартовых задач, коды входа в READMEabylay
  • 2026-09-23 16:05docs: consolidate approved product handoff for Abylaiiagadilov
  • 2026-09-23 16:01docs: accept MVP decisions and specify GPT Image chat artifactiagadilov
  • 2026-09-23 16:00Жюри №3: сводный отчёт Chair 81/100, сырые отчёты, статусabylay
  • 2026-09-23 15:59Упрости и выровняй форму откликаabylay
  • 2026-09-23 15:58По жюри №3: подсказки-кнопки через guard, годы не считаются метрикой, роли куратор/завуч, везде «3–5 вопросов»abylay
  • 2026-09-23 15:56По жюри №3: rank в «Моих задачах», критерий заявителя не затирается вариантом, имя команды без телефона, дубль контекст=потребность даёт половину, READMEabylay
  • 2026-09-23 15:53docs: close product discovery with client evidence and MVP decisionsiagadilov
  • 2026-09-23 15:50README: websocket в компонентах; лендинг без обещания «0 фактов»; известная проблема доступа к черновикамabylay
  • 2026-09-23 15:50Сделай страницу задачи понятной исполнителюabylay
  • 2026-09-23 15:48Срок в вариантах результата помечен как оценка AIabylay
  • 2026-09-23 15:43Учитывай окончания слов в поиске задачabylay
  • 2026-09-23 15:42Уточни свободу выбора и быстрый поиск задач для командiagadilov
  • 2026-09-23 15:42Статус: браузерный e2e диалога с вариантами прошёлabylay
  • 2026-09-23 15:42Статус: диалог с вариантами результата проверен по APIabylay
  • 2026-09-23 15:41Починить ширину диалога с агентом на мобильномabylay
  • 2026-09-23 15:41Обнови дизайн и навигацию каталогаabylay
  • 2026-09-23 15:40Диалог: minmax(0,1fr) против переполнения широкого сообщенияabylay
  • 2026-09-23 15:40Контракт: раздел «Варианты первого результата»abylay
  • 2026-09-23 15:39Подключить динамические вопросы и варианты результата в диалогabylay
  • 2026-09-23 15:38Refresh team status from Abblay handoffiagadilov
  • 2026-09-23 15:38Тесты эндпоинтов вариантов результатаabylay
  • 2026-09-23 15:37Варианты первого результата: AI-функция с mock и защитой, эндпоинты result-options и apply-result; сборка main восстановленаabylay
  • 2026-09-23 15:36Передать Qutty как дизайн-референс UI командеiagadilov
  • 2026-09-23 15:35WIP агентов: диалог с агентом (AgentChat), варианты результата — промежуточное состояние, собирается и проходит тестыabylay
  • 2026-09-23 15:33Hero: обещание в заголовке, пояснённое до/после, мини-каталог с откликами на первом экранеabylay
  • 2026-09-23 15:32Document product interview and scoped AI handoffiagadilov
  • 2026-09-23 15:29Сравнение без внутреннего скролла; число откликов на карточках каталогаabylay
  • 2026-09-23 15:28API: число откликов у задач каталогаabylay
  • 2026-09-23 15:26Чат: пустая история по WebSocket не ломает списокabylay
  • 2026-09-23 15:26Лендинг: счётчики фактов, строки сравнения по очереди, фон финального блока без срезаabylay
  • 2026-09-23 15:25Как работает AI: живой последний вызов вместо пересказа, промпты свёрнутыabylay
  • 2026-09-23 15:24Навбар: переключатель режима виден на средних экранахabylay
  • 2026-09-23 15:23Навбар: плавающая стеклянная капсулаabylay
  • 2026-09-23 15:22Лендинг: scroll-история одной задачи, живой фон в hero и финальном блоке, стеклянное поле вводаabylay
  • 2026-09-23 15:22Динамические вопросы: не спрашивать название, не переспрашивать контекст при длинном черновикеabylay
  • 2026-09-23 15:20Guard: не применять проверку отрицаний к контексту и потребности; промпт карточки сохраняет слова пользователяabylay
  • 2026-09-23 15:18Быстрая модель для уточняющих вопросов (OPENAI_MODEL_FAST)abylay
  • 2026-09-23 15:18Страница задачи: таблица откликов на всю ширину со ссылкой и статусом словами, чат по WebSocket с запасным REST, баннер выбранной командеabylay
  • 2026-09-23 15:18Добавить модалку диалога с агентомabylay
  • 2026-09-23 15:16Динамические вопросы: следующий вопрос по ответам, типы ответа и варианты, живая карточка и балл в диалогеabylay
  • 2026-09-23 15:16Редактор: пометка пустых полей, подсказки рейтинга ведут к полю, анимация прироста баллаabylay
  • 2026-09-23 15:15Каталог: сетка карточек с чипами-фильтрамиabylay
  • 2026-09-23 15:14Главная как лендинг: одно поле с кнопкой «Отправить», до/после с чипами метрик, сравнение, шаги, FAQ; каталог на /catalogabylay
  • 2026-09-23 15:11Подключить Inter локально вместо Google Fontsabylay
  • 2026-09-23 15:09Вопросы: пример ответа под полем, цена пропуска, плавный переход и сводка ответов перед сборкой карточкиabylay
  • 2026-09-23 15:09Обновить известные ограничения после обязательного заявителяabylay
  • 2026-09-23 15:07Черновик: автосохранение и на первом экране, подпись «черновик сохранён», пример-плейсхолдерabylay
  • 2026-09-23 15:07Показать подсказку «+N к готовности» у полей карточки; не слать owner_contact при созданииabylay
  • 2026-09-23 15:06Добавить вход заявителя, «Мои задачи», таблицу откликов с чатом и черновик на первом экранеabylay
  • 2026-09-23 15:04Заявитель обязателен: создание и изменения задачи, решения по откликам и чат только после входа; stats для каталога; owner_contact в seedabylay
  • 2026-09-23 15:04Промпт вопросов: не более четырёх, не переспрашивать известноеabylay
  • 2026-09-23 15:00Добавить UX-ресерч живых конкурентов: Profi.ru, Riipen, hh.ru, Upworkabylay
  • 2026-09-23 14:59Убрать выбор демо-команды из входа: привязка по имени отключенаabylay
  • 2026-09-23 14:58Убрать дёрганость: плавные фильтры, стабильная высота, переходы; вынести выход команды в шапкуabylay
  • 2026-09-23 14:58Вход: нельзя войти в чужую команду по имени, у каждого контакта своя командаabylay
  • 2026-09-23 14:56Промпт вопросов: сначала боль и текущий процесс, простые слова, пример ответаabylay
  • 2026-09-23 14:54Добавить логотипabylay
  • 2026-09-23 14:53Разбить App.tsx на страницы и перевести формы на UI-kitabylay
  • 2026-09-23 14:51dev: Go на 8080 проксирует фронт в Vite при отсутствии сборкиabylay
  • 2026-09-23 14:51Заметка о соседнем проекте и плане видимой отличимостиabylay
  • 2026-09-23 14:50Добавить UI-kitabylay
  • 2026-09-23 14:49Guard: стемы, выдуманные имена, отрицания; формула: отрицания у признака, заглушки-фразы, бессмыслица, телефоныabylay
  • 2026-09-23 14:48dev.sh: не убивать сервер при неудачной сборке, Vite только на localhostabylay
  • 2026-09-23 14:46API: место в каталоге, прогноз места после подтверждения, предыдущий балл, до следующего уровняabylay
  • 2026-09-23 14:42Добавить dev.sh: локальный стенд с горячей перезагрузкой Go и Vite HMRabylay
  • 2026-09-23 14:40Добавить пример живого вызова OpenAI для проверки AI-функцииabylay
  • 2026-09-23 14:40Синхронизировать сценарий репетиции с демо-коммитомiagadilov
  • 2026-09-23 14:39Уточнить озвучку роста рейтинга для репетицииiagadilov
  • 2026-09-23 14:38Исправить метки времени в документах (были на 2 часа вперёд)abylay
  • 2026-09-23 14:38Зафиксировать границы QA и отсутствие web-правок до репетицииiagadilov
  • 2026-09-23 14:37Сверить сценарий на свежей сборке и приоритет репетицииiagadilov
  • 2026-09-23 14:36Подготовить чистый стенд на Mac и записать jury QAiagadilov
  • 2026-09-23 14:34Уточнить чатовый онбординг и поток контекстаiagadilov
  • 2026-09-23 14:33Принять регресс критического пути на новом backendiagadilov
  • 2026-09-23 14:32Добавить результаты второго жюри в статусiagadilov
  • 2026-09-23 14:32Синхронизировать stage QA и новый backend-контрактiagadilov
  • 2026-09-23 14:31Жюри-ревью №2: отчёт Chair, известные ограниченияabylay
  • 2026-09-23 14:30Закрыть функциональный stage gate после QAiagadilov
  • 2026-09-23 14:30Замечания жюри №2: владелец правит и подтверждает задачу с контактом, машина статусов отклика, отказ с «доступ закрыт», телефон строже, маскирование last_call; контракт и README синхронизированыabylay
  • 2026-09-23 14:29Отметить браузерную проверку этапа и ожидание QAiagadilov
  • 2026-09-23 14:28Добавить гипотезу чатового создания задач в продуктовую картуiagadilov
  • 2026-09-23 14:28Уточнить проверку этапа после совместимого APIiagadilov
  • 2026-09-23 14:27Зафиксировать дефект перехода selected в acceptediagadilov
  • 2026-09-23 14:26Подтверждение этапа из selected (UI без кнопки принятия); README: что в интерфейсе, что только в APIabylay
  • 2026-09-23 14:26Зафиксировать QA основного пути и границу входа бизнесаiagadilov
  • 2026-09-23 14:25Восстановить актуальный QA и демо-статусiagadilov
  • 2026-09-23 14:23Поделиться Excalidraw-картой продукта с командойiagadilov
  • 2026-09-23 14:22Статус и ограничения после входа бизнеса и чатаabylay
  • 2026-09-23 14:22Подтвердить полный демо-путь с входом командыiagadilov
  • 2026-09-23 14:22Закрыть auth-блокер после независимого QAiagadilov
  • 2026-09-23 14:20Вход бизнеса по контакту заявителя, «Мои задачи», решения владельца; двустороннее принятие, холд; чат по отклику на WebSocketabylay
  • 2026-09-23 14:19Отметить опубликованный вход команды и ожидание QAiagadilov
  • 2026-09-23 14:18Добавить UX-ресерч: куда смотреть, главное действие, микротекст по экранамabylay
  • 2026-09-23 14:17Добавить вход команды перед откликомiagadilov
  • 2026-09-23 14:17README: дальнейшее развитие (куратор-эскроу), известное ограничениеabylay
  • 2026-09-23 14:16Уточнить контроль входа команды и резервный демо-режимiagadilov
  • 2026-09-23 14:15Уточнить демо по новой формуле и блокеру входа командыiagadilov
  • 2026-09-23 14:14Отметить блокер входа команды в демоiagadilov
  • 2026-09-23 14:13Контракт: чат по отклику, двустороннее принятие, холдabylay
  • 2026-09-23 14:11Контракт: контакт заявителя и вход бизнеса по кодуabylay
  • 2026-09-23 14:10Флаг REQUIRE_TEAM_LOGIN: отклик без входа как страховка для демоabylay
  • 2026-09-23 14:10Закрыть cold UX-гейт и уточнить рейтинг QAiagadilov
  • 2026-09-23 14:09Обновить статус визуального UX и свежего демо-стендаiagadilov
  • 2026-09-23 14:06Контракт и статус: вход команд, контакт скрыт, известные ограниченияabylay
  • 2026-09-23 14:05Уточнить первый экран и ключевые шаги UIiagadilov
  • 2026-09-23 14:05Вход команд по одноразовому коду (демо 000000), мои отклики, отклик по токену, контакт скрыт из публичного спискаabylay
  • 2026-09-23 14:05Зафиксировать визуальный UX-анализ аналоговiagadilov
  • 2026-09-23 14:03Формула: «доступны» не план передачи, расширены роли; тест на кейсы QA; seed 3 = 70abylay
  • 2026-09-23 14:01Уточнить результат повторного QA рейтингаiagadilov
  • 2026-09-23 14:00Контракт: вход по одноразовому коду, демо-код 000000abylay
  • 2026-09-23 14:00Отметить визуальный ресерч и промежуточный UX-гейтiagadilov
  • 2026-09-23 13:59Контракт: вход команды, мои отклики, отклик по токенуabylay
  • 2026-09-23 13:58Добавить список известных ограничений MVPabylay
  • 2026-09-23 13:58README: правила формулы и Guard после ревью; статусabylay
  • 2026-09-23 13:58Уточнить первые десять секунд продуктового показаiagadilov
  • 2026-09-23 13:57Формула: мусор, отрицания, заглушки в тексте, телефон, причины с признаком; Guard: title и число+единица; mock need и titleabylay
  • 2026-09-23 13:56Добавить десятисекундный UX-гейт Ильясаiagadilov
  • 2026-09-23 13:53Зафиксировать семантические кейсы рейтинга от QAiagadilov
  • 2026-09-23 13:52Жюри-ревью №1: отчёт Chair, таймаут AI 10 сabylay
  • 2026-09-23 13:49Отразить обновлённый сценарий и контроль времениiagadilov
  • 2026-09-23 13:49Замечания Technical Judge: порт БД только localhost, таймаут AI 20 с, валидация ссылки, last_call в /api/ai, предварительный балл черновикаabylay
  • 2026-09-23 13:48Зафиксировать стенд и репетицию на Mac Ильясаiagadilov
  • 2026-09-23 13:48Привязать сценарий демо к живому UX и репетицииiagadilov
  • 2026-09-23 13:42Пересчитывать рейтинги текущей формулой при стартеabylay
  • 2026-09-23 13:40Уточнить расположение QA-инстанса и демо-запускiagadilov
  • 2026-09-23 13:39Собрать UX-аналоги для AI Sana Challenge Hubiagadilov
  • 2026-09-23 13:39Отразить чистый QA-прогон и новый jury gateiagadilov
  • 2026-09-23 13:38Отметить устаревшие баллы в запущенной базеiagadilov
  • 2026-09-23 13:37Выбрать gpt-6-sol по бенчмарку пяти моделей, таймаут 60 с, добавить бенч-тестabylay
  • 2026-09-23 13:37Зафиксировать обезличенные выводы из звонков заказчиковiagadilov
  • 2026-09-23 13:35Зафиксировать предварительный jury gateiagadilov
  • 2026-09-23 13:34Зафиксировать React e2e и регрессию рейтингаiagadilov
  • 2026-09-23 13:33Ужесточить формулу против заглушек, регрессия на seed, модель gpt-5.4-mini, порт только localhostabylay
  • 2026-09-23 13:31Уточнить промпт карточки: определения полей, ограничения только явныеabylay
  • 2026-09-23 13:30Отразить API QA и расхождение seed-балловiagadilov
  • 2026-09-23 13:29Написать README: запуск, архитектура, формула рейтинга, правила каталога, AI, тестовые сценарииabylay
  • 2026-09-23 13:29Обновить статус интеграции и продуктового ресерчаiagadilov
  • 2026-09-23 13:27Исправить время исследовательской запискиiagadilov
  • 2026-09-23 13:27Обновить статус: Go API в main, ресерч, ужесточение рейтингаabylay
  • 2026-09-23 13:26Добавить ICP и дерево решений для AI Sana MVPiagadilov
  • 2026-09-23 13:26Добавить ресерч Astra: аналоги, контрпримеры к формуле, рекомендацииabylay
  • 2026-09-23 13:25Добавить Go API: сервер, хранилище Postgres, seed-загрузчик, Docker, сквозные тестыabylay
  • 2026-09-23 13:23Показать позицию задачи в каталогеiagadilov
  • 2026-09-23 13:23Добавить веб-ресерч по рейтингу готовности и аналогамabylay
  • 2026-09-23 13:22Игнорировать локальные env-файлы и отметить черновик демоiagadilov
  • 2026-09-23 13:21Уточнить в контракте предварительный и официальный баллabylay
  • 2026-09-23 13:20Добавить черновик сценария продуктового демоiagadilov
  • 2026-09-23 13:19Собрать React-поток задачи и открытого каталогаiagadilov
  • 2026-09-23 13:19Обновить статус MVP и разделение задачiagadilov
  • 2026-09-23 13:18Добавить AI-модуль: OpenAI Responses API, mock-режим, защита от выдуманных фактовabylay
  • 2026-09-23 13:17Добавить модель данных и модуль рейтинга готовности с тестамиabylay
  • 2026-09-23 13:17Добавить синтетические демо-данные для задач и откликовiagadilov
  • 2026-09-23 13:13Зафиксировать формат seed-файлов и порядок загрузкиabylay
  • 2026-09-23 13:12Перевести фронт на Vite + React, заменить контракт шаблонов на API-контрактabylay
  • 2026-09-23 13:11Сменить стек на Go и Postgres, обновить план и контракт шаблоновabylay
  • 2026-09-23 13:11Добавить независимую техническую оценку MVPiagadilov
  • 2026-09-23 13:10Добавить контракт main.py → шаблоны и критический путь демоabylay
  • 2026-09-23 13:08Отметить получение Education-ТЗ и план MVPiagadilov
  • 2026-09-23 13:08Добавить матрицу приёмки Education MVPiagadilov
  • 2026-09-23 13:07Добавить технический план MVP с разделением файлов и рискамиabylay
  • 2026-09-23 13:07Зафиксировать варианты MVP по официальному ТЗiagadilov
  • 2026-09-23 13:06Обновить TASK.md полным текстом ТЗ из первоисточникаabylay
  • 2026-09-23 13:05Добавить официальное ТЗ дословно в TASK.mdabylay
  • 2026-09-23 13:05Зафиксировать официальное ТЗ Education с источникомiagadilov
  • 2026-09-23 12:55Поставить Astra на роль Red Team Judge в жюри-ревьюabylay
  • 2026-09-23 12:51Зафиксировать варианты использования активированных кредитовiagadilov
  • 2026-09-23 12:43Обновить статус двустороннего SSH-каналаiagadilov
  • 2026-09-23 12:42Зафиксировать доступность хакатонных кредитов без кодовiagadilov
  • 2026-09-23 12:37Отметить завершение исследования конкурентовiagadilov
  • 2026-09-23 12:33Добавить карту конкурентов и победителей Educationiagadilov
  • 2026-09-23 12:33Отметить сохранённый ресерч организаторовiagadilov
  • 2026-09-23 12:32Зафиксировать протокол передачи контекста между агентамиiagadilov
  • 2026-09-23 12:32Добавить исследование сигналов для Educationiagadilov
  • 2026-09-23 12:23Согласовать жюри-ревью с JUDGE_AGENT_PROMPT и стратегией, обновить статус, добавить gitignoreabylay
  • 2026-09-23 12:22Добавить общий статус и стратегию командыiagadilov
  • 2026-09-23 11:57Честный балл жюри, дедлайн ролика как неизвестный, запасная рубрика без READY TO SUBMITabylay
  • 2026-09-23 11:52Согласовать правила с стратегией: этапы оценки, условия остановки жюри, роли агентов, пометки источников; добавить файл скилла jury-reviewabylay
  • 2026-09-23 11:47Добавить правила работы в дуо и гит-дисциплинуabylay
  • 2026-09-23 11:45Добавить процедуру жюри-ревью и скилл jury-reviewabylay
  • 2026-09-23 11:41Добавить правила и критерии хакатона для агентовabylay
Структура репозитория (193 файлов)
.claude/skills/jury-review/SKILL.md
.dockerignore
.env.example
.gitignore
AGENTS.md
AGENT_HANDOFF.md
API_CONTRACT.md
CLAUDE.md
Dockerfile
HACKATHON_RULES.md
HACKATHON_STRATEGY.md
JUDGE_AGENT_PROMPT.md
KNOWN_ISSUES.md
Makefile
PLAN.md
PRODUCT_IMPLEMENTATION_HANDOFF.md
README.md
STATUS.md
TASK.md
cmd/server/main.go
db/db.go
db/schema.sql
demo/hook.md
demo/script.md
dev.sh
docker-compose.yml
docs/ai-live-sample.json
docs/brainstorm/README.md
docs/brainstorm/ai-sana-product-map.excalidraw.md
go.mod
go.sum
internal/ai/ai.go
internal/ai/ai_test.go
internal/ai/bench_test.go
internal/ai/discovery_test.go
internal/ai/guard.go
internal/ai/image.go
internal/ai/mock.go
internal/ai/next_test.go
internal/ai/openai.go
internal/ai/options.go
internal/ai/options_test.go
internal/ai/prompts.go
internal/ai/suggestions_test.go
internal/http/auth.go
internal/http/auth_test.go
internal/http/chat_test.go
internal/http/dynamic_test.go
internal/http/fakeai_test.go
internal/http/handler.go
internal/http/handler_test.go
internal/http/owner_edit_test.go
internal/http/recommend.go
internal/http/result_options_test.go
internal/http/static.go
internal/http/student_test.go
internal/http/testutil_test.go
internal/http/visual.go
internal/http/ws.go
internal/model/model.go
internal/rating/noise.go
internal/rating/noise_test.go
internal/rating/qa_cases_test.go
internal/rating/rating.go
internal/rating/rating_dup_test.go
internal/rating/rating_test.go
internal/rating/seed_test.go
internal/store/auth.go
internal/store/seed.go
internal/store/stats.go
internal/store/store.go
internal/store/store_test.go
internal/store/testdata/proposals.json
internal/store/testdata/tasks.json
internal/store/testdata/teams.json
internal/store/visual.go
research/acceptance-matrix.md
research/analogues-ux.md
research/analogues-visual-ux.md
research/analogues-visual-ux/archibalt-demo-home.png
research/analogues-visual-ux/archibalt-demo-new.png
research/analogues-visual-ux/catchafire-deliverables-help.png
research/analogues-visual-ux/parker-dewey-home.png
research/analogues-visual-ux/riipen-builder-help.png
research/analogues-visual-ux/riipen-edit-help.png
research/analogues-visual-ux/typeform-clarify-help.png
research/astra-readiness.md
research/competitor-lan-note.md
research/credits-options.md
research/design-reference-qutty.md
research/fable-readiness.md
research/icp-ux-decision-tree.md
research/jury-review-1.md
research/jury-review-2.md
research/jury-review-3-raw.md
research/jury-review-3.md
research/jury-review-4-raw.md
research/jury-review-4.md
research/landing-copy-2026-09-23.md
research/landscape.md
research/organizers.md
research/product-feedback-2026-09-23.md
research/product-interview-2026-09-23.md
research/product-options.md
research/product-scope-closure-2026-09-23.md
research/rating-qa-cases.md
research/release-acceptance-2026-09-23.md
research/spec-visualization-api.md
research/student-mvp-2026-09-23.md
research/tech-plan.md
research/ux-clarity.md
research/ux-competitors.md
research/voice-of-customer.md
seed/drafts.json
seed/proposals.json
seed/tasks.json
seed/teams.json
web/.gitignore
web/catalog-check.mjs
web/chat-entry-check.mjs
web/index.html
web/package-lock.json
web/package.json
web/public/favicon.svg
web/public/fonts/inter-var.woff2
web/public/logo.svg
web/src/App.tsx
web/src/api.ts
web/src/components/AgentChat/AgentChat.css
web/src/components/AgentChat/AgentChat.tsx
web/src/components/AgentChat/context.ts
web/src/components/AgentChat/index.tsx
web/src/components/AgentChat/mock.ts
web/src/components/AgentChat/transport.ts
web/src/components/AgentChat/types.ts
web/src/components/AnimatedBackground.tsx
web/src/components/BeforeAfter.tsx
web/src/components/Layout.tsx
web/src/components/LoginModal.tsx
web/src/components/PageState.tsx
web/src/components/ProposalCard.tsx
web/src/components/ProposalChat.tsx
web/src/components/RatingPanel.tsx
web/src/components/Reveal.tsx
web/src/components/ScrollStory.tsx
web/src/components/SessionMenu.tsx
web/src/components/StudentHub.css
web/src/components/StudentHub.tsx
web/src/components/student-state.ts
web/src/fields.ts
web/src/main.tsx
web/src/pages/AiPage.tsx
web/src/pages/Catalog.css
web/src/pages/Catalog.tsx
web/src/pages/Clarify.tsx
web/src/pages/Landing.tsx
web/src/pages/MyTasks.tsx
web/src/pages/TaskEdit.css
web/src/pages/TaskEdit.tsx
web/src/pages/TaskNew.tsx
web/src/pages/TaskShow.css
web/src/pages/TaskShow.tsx
web/src/pages/Teams.css
web/src/pages/Teams.tsx
web/src/pages/catalog-model.ts
web/src/pages/teams-model.ts
web/src/session.tsx
web/src/styles.css
web/src/ui/Alert.tsx
web/src/ui/Badge.tsx
web/src/ui/Button.tsx
web/src/ui/Chips.tsx
web/src/ui/ConfirmDialog.tsx
web/src/ui/EmptyState.tsx
web/src/ui/Field.tsx
web/src/ui/Input.tsx
web/src/ui/Logo.tsx
web/src/ui/Meter.tsx
web/src/ui/Modal.tsx
web/src/ui/Segmented.tsx
web/src/ui/Select.tsx
web/src/ui/Spinner.tsx
web/src/ui/Toast.tsx
web/src/ui/cx.ts
web/src/ui/icons.tsx
web/src/ui/index.ts
web/src/ui/ui.css
web/src/useLoad.ts
web/student-flow-check.mjs
web/task-edit-check.mjs
web/teams-check.mjs
web/tsconfig.json
web/vite.config.ts
Ветки (2)

Обсуждение 0 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.