---
slug: teacher-workspace-init
bok_id: s-expert-bok-authoring
title: 'Рабочее место преподавателя: папка курса за пять минут'
description: |
  Разворачивает на машине преподавателя минимальное рабочее место: область «Мои курсы» и папку
  первого курса как git-репозиторий, куда кладутся материалы. Без интервью о себе и без полной
  раскладки экзокортекса — только то, что нужно для первой лекции. Запускается сразу после
  подключения агента к платформе (подсказка `whoami`) или по просьбе «разверни рабочее место
  преподавателя», «хочу выпустить лекцию своим ученикам». Сразу передаёт управление навыку
  `material-to-lecture`.
kind: simple
protocol_version: '1.0'
protocol:
  surfaces:
  - local_agent
  steps:
  - number: 1
    title: Проверить, где мы
    prompt_template: |
      Определи текущий каталог. Три случая:
      - в нём уже есть `.exocortex/manifest.yaml` — это существующий экзокортекс: ничего не пересоздавай, только добавь недостающую `areas/courses/` (шаг 3) и отметь `profile: teacher` в манифесте, если поля нет;
      - в нём есть `.exo-workspace.yaml`, но нет своего `.exocortex/` — это контейнер экзокортексов: **не разворачивай здесь**, предложи подкаталог (`<имя>-courses`) или вход в один из существующих;
      - пустой или обычный каталог — предложи создать рабочее место здесь или в подкаталоге `courses-workspace`. Спроси одно: «где разворачиваем?» — и дождись ответа.
      Ничего не удаляй и не перезаписывай.
    expected_output: Выбранный каталог рабочего места и тип случая (новый / существующий экзокортекс)
  - number: 2
    title: Название первого курса
    prompt_template: |
      Спроси одним вопросом: «Как называется курс, в котором будет первая лекция?» Из ответа сделай
      слаг латиницей в нижнем регистре через дефис (`^[a-z0-9-]{3,60}$`), покажи его и прими правку.
      Не спрашивай описание, аудиторию, расписание — это не нужно для первой лекции.
    expected_output: Название курса и его слаг
  - number: 3
    title: Развернуть минимальный профиль
    prompt_template: |
      Создай (только отсутствующее, существующее не трогай):
      ```
      .exocortex/manifest.yaml        # tier: base, profile: teacher, init_state: teacher-min, agents: [<текущий агент>]
      areas/courses/README.md          # одна строка: «Здесь живут ваши курсы; каждый — отдельный git-репозиторий»
      areas/courses/<слаг>/
        sources/                       # сюда преподаватель кладёт материалы (pdf, docx, md, слайды, транскрипты)
        lessons/
        self_tests/
        courses/
        manifest.yaml                  # bok: {id: <слаг базы>, title, description, type: expert, author, language: ru, version: '0.1', default_access_tier: basic}
                                       # courses: [<слаг курса>]
      ```
      Слаг базы: если у преподавателя уже есть своя база на платформе (`bok_list` scope=mine), возьми её слаг;
      иначе — `<слаг курса>-bok` (база будет создана при первой публикации).
      В `areas/courses/<слаг>/` выполни `git init` и первый коммит «каркас курса».
      Если у агента есть файл-инструкция проекта (CLAUDE.md / AGENTS.md) — допиши в него три строки: где курсы,
      что материалы кладутся в `sources/`, что лекция собирается навыком `material-to-lecture`. Больше ничего не проецируй.
    expected_output: Созданные каталоги и файлы (список), git-репозиторий курса с первым коммитом
  - number: 4
    title: Передать в сборку лекции
    prompt_template: |
      Скажи преподавателю одним абзацем: «Положите материалы первой лекции в `areas/courses/<слаг>/sources/` —
      любой формат, хоть черновик. Когда положите, скажите „готово“, и я соберу из них лекцию с самопроверкой».
      Не рассказывай про зоны экзокортекса, тарифы и устройство платформы — если спросят, ответь коротко.
      Полное ядро экзокортекса можно развернуть позже (`update-exocortex`), когда появится зачем.
      После ответа «готово» — запусти навык `material-to-lecture` для этой папки.
    expected_output: Преподаватель знает, куда положить материал; управление передано material-to-lecture
created: 2026-09-26
status: draft-v0.1
display_id: EXP-S-Teacher-Workspace-Init
node_type: skill
canonical_source: null
created_from_scratch: true
created_trigger: 'teacher-onboarding-mcp (think_do): org/teacher-min-profile-after-oauth'
applied_at: []
related:
- material-to-lecture
- workshop-recap-orchestrator
access_tier: public
---
# Рабочее место преподавателя

**Зачем:** первая ценность для преподавателя — лекция, которую открыли его ученики, а не настроенный
инструмент. Поэтому навык разворачивает минимум и сразу уходит в сборку лекции
(`org/teacher-min-profile-after-oauth`).

**Инварианты:**
- повторный запуск ничего не перезаписывает — только добавляет отсутствующее;
- в контейнере экзокортексов (`.exo-workspace.yaml` без своего `.exocortex/`) не разворачивается;
- в рабочее место не пишутся ключи, токены и личные данные.

**Результат:** `areas/courses/<слаг>/` — git-репозиторий курса с `sources/`, готовый для `material-to-lecture`.
