m
Mars AI Operator Модуль 1 CLAUDE.md
~55 мин · hands-on
Mars AI Operator · Модуль 1 · агентский кодинг

Контракт с агентом. CLAUDE.md как твоя постоянная подпись.

CLAUDE.md — sening doimiy imzong

Ты уже пользуешься AI как чатом — спросил, получил ответ, скопировал в работу. Этот модуль начинается с развилки: рядом с чатом выросла другая категория — агент, который не отвечает, а действует. Сначала разберёмся, чем они отличаются и почему это меняет твою работу, — а в конце ты напишешь свой первый CLAUDE.md и проверишь его руками.

Длительность
55 мин
Формат
Текст + терминал
Prereq
Знаешь cd и ls
После
Модуль 4
Прежде чем начать — снимаем три вопроса
Терминал нужен на базовом уровне: знаешь cd и ls — этого достаточно, чтобы начать. Остальное подберёшь по ходу.

Чат и агент. Два разных инструмента.

Chat va agent — ikki xil asbob

Чат ты уже знаешь — это ChatGPT или Claude.ai в браузере. Пишешь вопрос — получаешь ответ. Что полезно — копируешь к себе в работу руками. Чат — это собеседник: умный, но «за стеклом». Сам в твои файлы не лезет и про твой проект ничего не знает, пока ты заново не расскажешь.

Рядом выросла вторая категория — агент. Ему даёшь задачу — и он сам действует: открывает твои файлы, правит их, запускает команды в терминале, смотрит на результат и идёт дальше. Не «подскажет, что набрать», а делает и показывает, что получилось. Это уже не собеседник, а исполнитель с руками.

Чат · ты уже пользуешься
Отвечает текстом
Живёт во вкладке браузера
Код в проект переносишь ты, руками
Контекст объясняешь заново каждый раз
«как написать цикл в Python?»
Агент · этот курс
Действует: читает, правит, запускает
Живёт в твоём проекте — терминал, редактор
Делает сам, ты проверяешь diff
Контекст задаёшь один раз — он помнит
«почини баг в auth.py и прогони тесты»
Главное Оба нужны. Чат — быстро спросить, обсудить идею, объяснить концепт. Агент — сделать работу в реальном проекте. Этот курс — про агентов: конкретно про agentic coding, когда агент работает с твоим кодом. Дальше — что это меняет в обычный вторник вечером.

2024 против 2026. Один и тот же баг — два мира.

2024 vs 2026 — bitta xato, ikki dunyo
2024 · чат

Открываешь ChatGPT. Копируешь функцию. «Почини баг». Получаешь код. Вставляешь в редактор. Не работает. Копируешь ошибку обратно. Так пять раз. Контекст живёт в твоей голове, не у модели.

2026 · агент

В папке проекта пишешь claude. Агент сам читает 7 файлов, находит баг, чинит, запускает тесты. Ты смотришь diff и говоришь «merge».

Один и тот же ты, один и тот же баг. Разница — в том, что во втором случае агент уже знал твой проект: язык, стек, твои правила. Эту постоянную память ему даёт один файл — CLAUDE.md. С него и начнём.

Дальше в модуле: как агент работает внутри, demo «до и после» на реальной группе, и твой первый CLAUDE.md — на user-уровне и в проекте — чтобы перестать каждую сессию объяснять агенту, кто ты и для кого пишешь код.

После этого модуля ты

Как агент это делает. Цикл из действий.

Qanday ishlaydi · qayerda · MarsCode

Ты уже понял разницу: чат отвечает, агент действует. Теперь — как именно он действует, чтобы это не выглядело магией.

Внутри — цикл из действий, а не одна реплика. Ты пишешь задачу. Агент решает «сначала прочитаю файл» — и читает. Видит содержимое, думает дальше: «теперь правлю» — и правит. Потом сам запускает тесты. И так по кругу, пока задача не закроется или он не упрётся в вопрос к тебе.

┌──────────────┐ │ Ты: задача │ └──────┬───────┘ ▼ ┌──────────────┐ ┌──────────────┐ │ Claude │─────▶│ Read file │ │ (модель) │ └──────┬───────┘ └──────▲───────┘ │ │ ▼ │ ┌──────────────┐ │◀────────────│ результат │ │ └──────────────┘ │ ├──▶ Edit file ──▶ результат ──┐ │ │ ├──▶ Bash (тест) ──▶ результат ──┤ │ │ └──▶ Read again ──▶ результат ──┘ ▼ ┌──────────────┐ │ Ответ тебе │ │ (diff/итог) │ └──────────────┘
↔ прокрути, если не помещается

Каждая стрелка вниз — это новый вызов модели. На больших задачах их десятки. Ты видишь это как полупрозрачный поток в TUI: Reading src/auth.py, Editing tests/test_login.py, Running pytest.

Где его запускать

Claude Code не привязан к одному окну. Одна и та же настройка (твой CLAUDE.md) работает в терминале, в редакторе и в браузере. Выбираешь, где удобнее под задачу.

Где
Когда удобно
Установка
Terminal
Live coding с детьми на проекторе, скрипты, репы Mars. Дефолт для курса.
curl install
VS Code
Inline diffs, @-mentions, plan review прямо в редакторе
extension
Desktop app
Несколько сессий рядом, визуальный diff, фоновые задачи
.dmg / .exe
Web
claude.ai/code — без установки, для быстрой проверки
браузер
JetBrains
PyCharm / IntelliJ — если уже там работаешь
plugin
Ключевая идея для ментора Один ~/.claude/CLAUDE.md работает везде. Один ./CLAUDE.md в репе — тоже. Меняешь окно — контракт остаётся.

MarsCode — наш агент

MarsCode — наш собственный инструмент той же категории, что Claude Code. Он ходит к моделям через Mars, поэтому для тебя бесплатен — баланс выдаёт школа. Тебе тут важно одно: платить за модели не надо.

В курсе учим на Claude Code — на нём всё работает «из коробки» и есть полная документация. MarsCode подключим в Модуле 5, когда будем строить свои Skills и экономить.

Codex (OpenAI) и Antigravity (Google) — то же самое, другие вендоры. В курсе их не трогаем; если ученик спросит — это такой же агент, просто от другой компании.

Demo. Без CLAUDE.md и с ним.

Bir xil so'rov — ikkita natija

Кейс: ментор Зухра, точка Yunusobod, группа Python 7-9 лет, 6 детей. Открывает Claude Code в репе со стартер-проектами. Просит одно и то же. Сначала без контракта, потом — с ним.

Спрогнозируй сначала Перед тем как смотреть Сценарий B — запиши на бумажке: что именно изменится в выводе агента, если у него будет project CLAUDE.md? Сколько вопросов он задаст? В каком стиле напишет код? Запиши свою гипотезу — потом сверим с реальностью.
A · без CLAUDE.md
$ cd ~/mars-lessons/python-7-9 && claude# агент стартует с чистого листа

> помоги добавить ещё одну игру
  про математику для моих учеников

Claude: Я готов помочь. Пара
вопросов, чтобы понять контекст:

  1. Какой возраст учеников?
  2. На каком языке объяснения
     в комментариях?
  3. Какие библиотеки разрешены?
  4. Насколько подробно
     комментировать?
  5. ООП можно или процедурный
     стиль?

# 3 минуты пинг-понга на каждой сессии.
Без контракта — каждый раз заново. Зухра в неделю открывает Claude 8-10 раз. Это 30 минут на одно «привет, я снова я».
B · с CLAUDE.md
$ cd ~/mars-lessons/python-7-9 && claude# агент читает ./CLAUDE.md автоматом

> помоги добавить ещё одну игру
  про математику для моих учеников

Claude: Сделаю стартер
«Угадай число» в стиле проекта:

  • pygame + random, без f-strings
  • переменные русско-латиницей
  • комментарий на каждые 2 строки
  • короткий заголовок «Что эта
    программа делает»

  Прочитал 01-circle.py для стиля.
  Создаю 06-guess-number.py.

Edit: 06-guess-number.py (+38)
Bash: python3 -m py_compile ✓

# 40 секунд до результата.
С контрактом — агент сразу в духе проекта. Никаких уточнений, потому что они уже записаны в файле.

Project CLAUDE.md для группы Python 7-9 лет

Вот файл, который лежит в репе Зухры. Скопируй как стартер — это один из трёх готовых шаблонов pre-build:

./CLAUDE.md · mars-lessons/python-7-9# Mars IT School — Python для группы 7-9 лет
# точка Yunusobod, ментор Зухра

## Кто читает этот код
- Дети 7-9 лет, четверо первый раз видят программирование.
- Язык объяснений: русский. Узбекская латиница допустима
  в именах переменных, если это помогает (`tugma` вместо `button`).
- Терминология: не использовать "функция", "класс", "цикл"
  без объяснения через бытовую аналогию в комментарии.

## Конвенции кода
- **Каждая строка комментируется на русском.** Это не код для прода,
  это код для урока.
- Имена переменных — простые слова или транслит (`schyot`, не `score_counter`).
- Только `pygame` и `random`. Не использовать f-strings,
  list comprehensions, dataclasses.
- Файл всегда начинается с короткого комментария
  «Что эта программа делает» в 1 строку.

## Workflow
- Каждый файл должен запускаться через `python3 file.py` без аргументов.
- Перед коммитом — `python3 -m py_compile file.py` (проверка синтаксиса).
- Не редактировать `.solutions/` — там готовые решения для следующих групп.
Принцип Файл — это «всё, что я бы повторил агенту, если бы у него была амнезия». Возраст детей, язык, конвенции, запреты. Каждое правило конкретное: не «пиши понятно», а «комментарий каждые 2 строки на русском».

Другой ментор — другой контракт

Тот же шаблон «кто читает / конвенции / workflow» — но другая аудитория. Тимур, точка Чиланзар, второй год Python, готовит олимпиадников 12-14. Сравни с Зухриным:

./CLAUDE.md · mars-lessons/python-olymp-12-14# Mars IT School — Python олимп для группы 12-14
# точка Чиланзар, ментор Тимур

## Кто читает этот код
- Дети 12-14, второй год Python, готовятся к Республиканской
  олимпиаде по информатике.
- Язык объяснений: русский. Имена переменных — английские
  (олимпиада на английском, нет смысла учить иначе).
- Знают: функции, циклы, словари, генераторы.
  НЕ знают: классы, dataclasses, async.

## Конвенции кода
- Полная типизация: `def solve(n: int) -> list[int]:` — учим
  читать сигнатуры.
- Сложные алгоритмы — обязательно `doctest` или `assert`
  с примером из условия задачи.
- Решение должно проходить tests в `./tests/` (`pytest`).
- Каждый файл начинается с docstring: задача, ограничения,
  сложность по времени/памяти.
- НЕ использовать сторонних библиотек кроме `math`, `collections`,
  `itertools`, `heapq`, `bisect` — олимпиадный набор.

## Workflow
- Перед коммитом — `pytest -q` (всё зелёное).
- Решения в `./solutions/`, тесты в `./tests/`.

У Зухры — запрет на типизацию и list comprehensions, у Тимура — обязательная типизация. Один шаблон, два разных контракта. Третий шаблон — Шахзод, Sergeli, React/TypeScript 15-17 — лежит рядом в файле starters.md. Возьми один как образец и подгони под свою группу.

Два файла, которые тебе нужны. User и project.

Ikki fayl — user va project

CLAUDE.md живёт на двух уровнях, и для старта тебе нужны именно эти два. Оба грузятся автоматически в начале каждой сессии — объяснять заново не нужно.

Userпро тебя
~/.claude/CLAUDE.md · один на все проекты. Кто ты, на каком языке говорить, как ты любишь работать с агентом. Пишешь один раз.
Projectпро группу
./CLAUDE.md в репе · возраст детей, стек, конвенции, запреты. Лежит в git — общий для команды. Самый важный файл для ментора.
Когда они спорят Если в user-файле «говори по-английски», а в project «по-русски, объясняем детям» — побеждает project: он про конкретную работу и читается последним. Практическое правило: в user пиши про себя, в project — про эту группу, и конфликтов не будет.

Есть ещё два уровня, которые сейчас можно пропустить: managed (правило для всей школы, ставит IT — у нас пока пусто) и local (./CLAUDE.local.md — личные заметки по проекту, в .gitignore). Понадобятся позже — не сегодня.

Claude ещё и сам ведёт заметки

Кроме твоего CLAUDE.md агент сам записывает то, что заметил по ходу: какие команды собирают проект, где были баги, какие паттерны у тебя в коде. Команда /memory показывает все файлы памяти и даёт их открыть. Это дополнение, не замена: CLAUDE.md — что ты хочешь, чтобы он всегда знал; авто-память — что он сам понял и запомнил.

Упражнение. Попробуй сегодня, 30 минут.

Bugun o'zing qil — 30 daqiqa

Четыре части. Сделай руками в терминале, не читай как теорию. После этого у тебя будет рабочая user+project пара CLAUDE.md и проверенный /memory.

01
Установка и проверка

На Mac/Linux: curl -fsSL https://claude.ai/install.sh | bash. На Windows PowerShell: irm https://claude.ai/install.ps1 | iex. Проверить: claude --version. Первый запуск попросит войти в аккаунт Anthropic — карта не нужна, для старта хватает бесплатного тарифа. Если что-то не ставится или просит оплату — пиши в чат менторов, разрулим. Это не твоя проблема.

~ 5 мин
02
User-level: ~/.claude/CLAUDE.md

Создай файл, скопируй шаблон ниже и подгони под себя. Это то, что Claude знает про тебя в любом проекте.

~/.claude/CLAUDE.md# О себе
Я ментор Mars IT School, точка <X>,
веду <стек> для возраста <Y>.
Язык работы: русский. Английский для технических терминов.

# Стиль работы с агентом
- Объясняй мне план до того как редактировать файлы
  (используй plan mode когда уместно)
- Если не уверен в API/библиотеке — спрашивай, не выдумывай
- Когда пишешь код, который пойдёт детям —
  короткие строки, простые имена, комментарии на русском
- Перед коммитом всегда покажи git diff, не коммить сам

# Что я обычно делаю
- Готовлю стартер-проекты к занятиям
- Проверяю код учеников
- Пишу внутренние скрипты для Mars
~ 10 мин
03
Project-level: ./CLAUDE.md в одной репе

Выбери одну учебную репу. Возьми один из трёх готовых шаблонов в starters.md (Зухра-Python-7-9, Тимур-Python-олимп-12-14, Шахзод-React-15-17) как образец — copy-paste и подгони под свою группу. Минимум три секции: «кто читает этот код», «конвенции», «workflow». Размер — до 200 строк, иначе адекватность падает.

Альтернатива — команда /init в репе: Claude Code сам пройдётся по коду и сгенерирует первичный CLAUDE.md, а ты подправишь под группу.

~ 15 мин
04
Тест через /memory

Запусти claude в той же папке. В сессии набери /memory — должен увидеть оба файла в списке. Если user-файл не появился — проверь путь (он именно ~/.claude/CLAUDE.md, не ~/.claude/Claude.md).

Дай простой запрос: «добавь функцию приветствия». Убедись, что агент пишет в духе CLAUDE.md (язык, стиль, запреты). Если нет — сделай /memory, открой файлы, посмотри что туда попало.

~ 5 мин
Частая ошибка Сделать CLAUDE.md на 500 строк «на всякий случай». Не работает. Anthropic документация прямо говорит: цель — до 200 строк, иначе модель хуже следует инструкциям. Если разрастается — выноси частное в .claude/rules/ (path-scoped) или в Agent Skill (Модуль 5).

Quiz. Проверь, что зашло.

O'zingni tekshir · 3 ta savol
Прежде чем проверять знания · 30 секунд 1) Что в этом модуле было самое неожиданное для тебя?
2) Где у тебя противоречит привычка из ChatGPT (или другого чата)?
Подумай вслух или запиши — это закрепляет лучше любого quiz'а.
Вопрос 01 · сценарий

В твоём ~/.claude/CLAUDE.md написано «пиши на английском». В ./CLAUDE.md учебной репы — «пиши на русском, объясняем детям». Запускаешь claude в этой папке и просишь добавить функцию. На каком языке агент напишет комментарии?

aНа английском — user-уровень более широкий и имеет приоритет.
bНа русском — project ближе к рабочей папке и появляется в контексте последним.
cСпросит явно, какой язык выбрать в этой репе.
b. Оба файла читаются в начале сессии, но project ближе к работе и идёт последним — поэтому при конфликте побеждает он, то есть русский. Практический вывод: держи user про себя, project про группу, и противоречий не будет. Если кажется, что агент путает правила — набери /memory и посмотри, что загрузилось.
Вопрос 02 · сценарий

Две недели назад ты сделал в учебной репе ./CLAUDE.md с правилом «не использовать f-strings». Открываешь репу заново, набираешь claude. Какой файл с твоими конвенциями загрузится автоматически в начале сессии?

aНикакой — нужно вручную написать «прочитай CLAUDE.md» в первом сообщении.
bТолько ~/.claude/CLAUDE.md — project-файл подтягивается по запросу.
cОба: ~/.claude/CLAUDE.md и ./CLAUDE.md — они конкатенируются в стартовый контекст сессии.
c. В этом весь смысл «контракта»: ты пишешь файл один раз, дальше Claude Code при каждом запуске обходит дерево от корня вверх и подтягивает CLAUDE.md / CLAUDE.local.md. Команда /memory в сессии показывает, что именно загрузилось — это первый чек если кажется, что агент «забыл» твои правила.
Вопрос 03 · сценарий

Ты ведёшь две группы: Python 8-9 лет и React 15-17. Хочешь, чтобы агент везде говорил с тобой по-русски и знал, что ты ментор — а в Python-репе ещё и писал простой код без f-strings. Куда что положить?

a«По-русски, я ментор» — в ~/.claude/CLAUDE.md (про тебя). «Дети 8-9, без f-strings» — в ./CLAUDE.md Python-репы (про группу).
bВсё в один ~/.claude/CLAUDE.md — так короче и не запутаешься.
cВсё в ./CLAUDE.md каждой репы — user-файл вообще не нужен.
a. Правило простое: в user — про тебя (одинаково во всех проектах), в project — про конкретную группу (своё для Python и для React). Вариант (b) сломается, когда агент начнёт избегать f-strings и в React-репе без причины. Вариант (c) заставит копировать «по-русски, я ментор» в каждую репу — и они разъедутся.
Чит-лист Все slash-команды Claude Code на одной страничке — для печати и быстрого референса: _lib/claude-code-cheatsheet.md.

Что дальше. Модуль 4 — context engineering.

Keyingisi — kontekstni boshqarish

У тебя теперь есть постоянная подпись — агент в любом проекте Mars знает, кто ты и для кого пишешь. Следующий обязательный модуль — четвёртый (модули 2-3 идут после фидбэка): про working memory и context engineering. Что такое /compact, почему agent «тупеет» к вечеру долгой сессии, как пользоваться sub-agent'ами как способом изоляции контекста. Это модуль, ради которого курс существует.

Модули 2-3 (Delegation × NTP, Description × Knowledge) и Модуль 5 (свои Sub-agents и Agent Skills) — после пилотного фидбэка от первых менторов.

Как модуль в целом?