Учебные репозитории курса
В курсе есть один сквозной Capstone и несколько специализированных Labs. Capstone развивается от Week 1 до Week 9 — каждая неделя меняет, а не заменяет проект. Week 8 фиксирует automation opportunity и solution design, Week 9 переносит выбранное решение в production-like сервис. Labs работают как отдельные skill labs: учат механику изолированно, после чего студент переносит понимание в Capstone.
| Проект | Роль в курсе |
|---|---|
| Capstone | Главный развивающийся проект: от baseline (Week 1) до production-like сервиса (Week 9) |
Taskboard (labs/starter-repo/) |
Guided starter lab: handoff contract, baseline test |
Repo Triage (labs/repo-triage/) |
Repository/context skill lab: evidence, path:line |
RAG Lab (labs/rag-lab/) |
Retrieval skill lab: JIT context, grounded answers |
Integration Lab (labs/integration-lab/) |
Tools/security/integration skill lab: Tool → Policy → Approval → Trace |
Схема взаимодействия:
Taskboard → learn handoff → Capstone Week 1-2
Repo Triage → learn evidence → Capstone Week 3
RAG Lab → learn retrieval → Capstone Week 3 (extension)
Integration Lab → learn tools → Capstone Week 6 → 9
В репозитории курса есть четыре самостоятельных Python-проекта с собственными зависимостями и тестами. Порядок в таблице — рекомендуемий: каждая следующая лаборатория опирается на предыдущую, но брать можно и любую одну.
| Проект | Когда открывать | Материалы |
|---|---|---|
Taskboard (labs/starter-repo/) |
Самый простой вводный проход: небольшая задача, baseline-тесты и контракт работы агента. | Пять issue и упражнения в labs/starter-repo/issues/ и labs/starter-repo/exercises/; инструкции — в labs/starter-repo/README.md. |
Repo Triage (labs/repo-triage/) |
Второй шаг: подготовка фактов о запросе и структуре существующего Python-репозитория. Локальная CLI-утилита собирает инвентарь файлов и символов, ранжирует контекст по ключевым словам и отмечает неоднозначные запросы как требующие уточнения. | Четыре issue типов bug/test/docs/ambiguous, тестовый Python-репозиторий и инструкции в labs/repo-triage/README.md. |
RAG Lab (labs/rag-lab/) |
Тема retrieval из недели 3 в коде: ingestion, chunking, embeddings, vector search, retrieval tool, ответ с цитатами и отказ отвечать без источника. | Корпус Markdown-документов, набор проверочных вопросов с метриками и инструкции в labs/rag-lab/README.md. |
Integration Lab (labs/integration-lab/) |
Тема tools и policy из недели 6 на реальной внешней системе: локальный REST-сервис issue поверх SQLite, типизированные инструменты, scopes, least privilege, human gate и trace. | Четыре сценария запуска и инструкции в labs/integration-lab/README.md. |
Подробное описание каждой лаборатории есть на сайте: Repo Triage, RAG Lab, Integration Lab.
Repo Triage не вызывает LLM, не меняет код и не запускает команды в анализируемом репозитории. Ранжирование файлов — эвристика для подготовки контекста, а не замена анализа разработчиком или coding agent.
RAG Lab и Integration Lab тоже работают без API-ключей: retrieval использует детерминированный локальный embedder и extractive-ответчик, а Integration Lab поднимает собственный локальный сервис. Обе лаборатории устроены так, чтобы заменяемая часть — эмбеддер, ответчик и planner — оставалась за интерфейсом, как ModelClient в основном курсе.
Как получить файлы
- Если репозиторий уже клонирован, откройте
labs/starter-repo/в корне checkout-а. - Если вы читаете опубликованный сайт, откройте исходный GitHub-репозиторий курса, выберите Code → Download ZIP, распакуйте архив и перейдите в
labs/starter-repo/.
Учебный проект можно открыть отдельно в VS Code, но для изменений курса и лабораторных достаточно одного клона. Submodule не нужен: материалы и упражнения меняются вместе с программой курса.
Для общего окружения курса из корня репозитория сначала создайте .venv, если его ещё нет.
Windows PowerShell
python -m venv .venv
macOS / Linux
python3 -m venv .venv
Далее установите тестовые зависимости и запустите все четыре test suite.
Windows PowerShell
.\.venv\Scripts\python.exe -m pip install -e ".\labs\starter-repo[dev]"
.\.venv\Scripts\python.exe -m pip install -e ".\labs\repo-triage[dev]"
.\.venv\Scripts\python.exe -m pip install -e ".\labs\rag-lab[dev]"
.\.venv\Scripts\python.exe -m pip install -e ".\labs\integration-lab[dev]"
.\.venv\Scripts\python.exe -m pytest .\labs\starter-repo\tests
.\.venv\Scripts\python.exe -m pytest .\labs\repo-triage\tests
.\.venv\Scripts\python.exe -m pytest .\labs\rag-lab\tests
.\.venv\Scripts\python.exe -m pytest .\labs\integration-lab\tests
macOS
./.venv/bin/python -m pip install -e "./labs/starter-repo[dev]"
./.venv/bin/python -m pip install -e "./labs/repo-triage[dev]"
./.venv/bin/python -m pip install -e "./labs/rag-lab[dev]"
./.venv/bin/python -m pip install -e "./labs/integration-lab[dev]"
./.venv/bin/python -m pytest ./labs/starter-repo/tests
./.venv/bin/python -m pytest ./labs/repo-triage/tests
./.venv/bin/python -m pytest ./labs/rag-lab/tests
./.venv/bin/python -m pytest ./labs/integration-lab/tests
Linux
Linux использует те же команды, что и macOS (Bash/zsh), приведённые выше. После установки все четыре запуска pytest должны завершиться без ошибок.
Если учебный проект скопирован отдельно от курса, установите его в собственное окружение .venv по инструкциям в README этого проекта.