🧭 [Эпик] Фаза L: локальный сквозной прогон и наполнение базы реальными данными
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start with the phase L contracts in docs/agent/environments.md, docs/agent/local-sweep.md, and docs/agent/course-walkthrough.md, then review the linked sub-issues (#1012, #1014, #1015, #1054, #1056, and #1057) to find a specific task. The epic is complete when the ordered work produces a real-data corpus and the required local runs and validations are done, while respecting its safety boundaries.
Written by the indexing model from the issue text.
Description
Сводный эпик фазы L — единственной фазы, которая выполняется на машине владельца. Контракт двухоконного режима — docs/agent/environments.md, инструкция прогона — docs/agent/local-sweep.md, протокол по курсам — docs/agent/course-walkthrough.md.
Зачем эпик
Работы фазы L лежали россыпью (#1012, #1014, #1015) и прирастают по ходу обсуждения. Их связывает не тема, а окно исполнения: всё это либо готовится в облаке для локального прогона, либо выполняется только локально. Порядок между ними жёсткий, и без общего места он теряется.
Что мы пытаемся получить
Базу с реальными данными — задачами пройденных курсов и решениями, включая неверные. Она нужна не сама по себе: на ней держатся «Прогресс», «Подучить», серия и бейджи, и проверить их на синтетике нельзя — облако честно этого не воспроизводит.
Порядок (рёбра важнее списка)
инвентарь курсов (#1015)
↓ без списка шагов нечего выгружать
выгрузка своей истории отправок ← блокер снят: #1055 закрыта, история
↓ скачивается целиком и не затирается
сверка вердиктов с платформой ← здесь и вылезают расхождения
↓
подготовка стенда (#1012) ⇄ оркестратор прогона (#1014)
↓
живой прогон с отправками ← опционально, по итогам сверки
Какое окно что закрывает
Формулировка «выполнимо в облаке» здесь всегда значит узел, а не цепочку: без токена и живой сети до Stepik облако проверяет разбор и раскладку на моках, но не даёт ни одной настоящей задачи и ни одного вердикта платформы.
| Задача | Облако | Локальная машина |
|---|---|---|
| #1015 инвентарь курсов | иерархия секций, JSON-вывод, тесты на моках | сам обход пяти курсов |
| #1054 база шагов со всех курсов | команда и разбор ответа | скачивание |
| #1056 сверка вердиктов | формат отчёта и логика сверки на фикстурах | данные из своей истории |
| #1014 оркестратор прогона | код и журнал | прогон |
| #1012 подготовка стенда | — | целиком |
| #1057 каталог мутаций | целиком | внешняя валидация отправкой |
Отсюда практическое следствие: облачная сессия доводит каждую задачу до состояния «локально осталось запустить команду». Задача, закрытая только диффом, не считается закрытой — она ждёт прогона там, где поверхность настоящая.
Что даёт каждый источник данных
Разные источники закрывают разное, и подменять один другим нельзя:
| Источник | Что даёт | Отправка на Stepik |
|---|---|---|
| Своя история отправок | реальные данные + эталонные вердикты платформы, бесплатно | не нужна |
| Мутации эталона (каталог) | воспроизводимые ошибки с известным вердиктом | нужна выборочно — валидировать каталог |
| Три роли (новичок/средний/эксперт) | граница TLE, «верно, но медленно» |
нужна |
Курс 82541 (не пройден) |
настоящие первые попытки | нужна |
Почему отправка всё-таки нужна. Каталог мутаций проверяет наш грейдер против наших же ожиданий — замкнутый круг: если мы неверно решили, что 12.30 равно 12.3, тест этого не поймает, он написан из того же заблуждения. Именно так родилась #940, где грейдер оказался зеленее платформы. Внешнюю валидацию даёт только отправка. Плюс сам путь attempt → submission → poll → вердикт (#683) — это продукт, и не отправляя его не проверить.
Почему одной своей истории мало. Многие задачи решены с первой попытки — корпус ошибок из неё выйдет бедным, а для «Подучить» нужны как раз ошибки.
Границы (действуют на все задачи эпика)
- Батч-отправка решений под живым аккаунтом исключена; отправки — точечные и объяснимые.
- Курс
82541— отправка выключена по умолчанию. - Чужой код (включая reference-решения из обсуждений) в корпус не идёт.
secrets.jsonне покидает локальную машину и не печатается в отчёты.- Корпус и выгрузки не коммитятся.
- Прогоны корпуса пишут в отдельную базу (
STEPIK_GRADER_HISTORY_DB), рабочая история не пачкается.
Состав
Подзадачи привязаны как sub-issues.
- Dominant language
- Python
- Stars
- 3
- Forks
- 6
- Avg merge
- 2h 41m
- Merged PRs (30d)
- 48
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ArtVsMark/Stepik-Python-Grader
-
Difficulty 2/5 1-3 hours Newbie friendliness 48/100
ArtVsMark/Stepik-Python-Grader#1636 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 Half a day Newbie friendliness 35/100
ArtVsMark/Stepik-Python-Grader#1635 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 18/100
ArtVsMark/Stepik-Python-Grader#1634 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 32/100
ArtVsMark/Stepik-Python-Grader#1633 ·
Maintainers usually reply within 1 day
-
Каталог v1.12.0: Python 3.14 / 3.15 / 3.16 — 3.15 в основной CI, 3.16 в python-next, подъём действийOpen
Difficulty 3/5 1-2 days Newbie friendliness 30/100
ArtVsMark/Stepik-Python-Grader#1632 ·
Maintainers usually reply within 1 day
All issues in ArtVsMark/Stepik-Python-Grader
Similar issues
-
bug needs-triage priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
yeongseon/azure-functions-logging-python#583 ·
Maintainers usually reply within 1 day
-
documentation needs-triage priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
yeongseon/azure-functions-validation-python#546 ·
Maintainers usually reply within 1 day
-
PHP workflow streaming requests buffer the full SSE responsePossibly taken @Winoren claimed this today. Openreview: medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
langgenius/dify#44270 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
P4: low
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
jeffknupp/association#523 ·
-
bug help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
DarkStarSystems/pcons#229 ·
Maintainers usually reply within 1 day