Первый модуль курса для менторов Mars. Не про чат с AI — про agentic coding tool: Claude Code в терминале, MarsCode (наш fork), и почему один markdown-файл в проекте меняет всё.
Открываешь ChatGPT. Копируешь функцию. «Почини баг». Получаешь код. Вставляешь в редактор. Не работает. Копируешь ошибку обратно. Так пять раз. Контекст живёт в твоей голове, не у модели.
В папке проекта пишешь claude. Агент сам читает 7 файлов, находит баг, чинит, запускает тесты. Ты смотришь diff и говоришь «merge».
Это разные категории. Чат — собеседник. Агент — исполнитель с инструментами. И у исполнителя должен быть контракт. Этот контракт называется CLAUDE.md.
В этом модуле — что такое agentic coding tool, чем он отличается от чата, и как написать свой первый CLAUDE.md (на user-уровне и в проекте Mars), чтобы перестать каждую сессию объяснять агенту, кто ты и для кого пишешь код.
/memory, что нужные CLAUDE.md действительно подгрузились.~/.claude/CLAUDE.md (про тебя как ментора) и ./CLAUDE.md в одной учебной репе (про эту группу).AGENTS.md и CLAUDE.md и решаешь, когда использовать какой (или оба через @AGENTS.md-import).Anthropic определяет это одной фразой:
Главное отличие от чата — loop of tool calls, а не одна реплика. Ты пишешь задачу. Модель решает: «сначала прочитаю файл». Вызывает инструмент Read. Получает содержимое. Думает дальше. Решает: «теперь правлю». Вызывает Edit. Затем Bash для тестов. И так пока задача не закроется или не упрётся в вопрос к тебе.
Каждая стрелка вниз — это новый вызов модели. На больших задачах их десятки. Ты видишь это как полупрозрачный поток в TUI: Reading src/auth.py, Editing tests/test_login.py, Running pytest.
Claude Code не привязан к одному окну. Это одна и та же конфигурация (CLAUDE.md, settings, MCP) в нескольких surface'ах. Выбираешь под задачу, не под привычку.
Mars держит свой агент — MarsCode, fork of sst/opencode. OpenAI-совместимый API, ходит через Mars Token Factory — наш LLM-прокси с кошельком в Mars coins. Зачем fork: Anthropic-only стек дорог при массовом раскате на учеников, MarsCode роутится на дешёвые модели через token-factory. Менторам выдаём баланс.
В MVP-курса учим на Claude Code (baseline, документация Anthropic покрывает 100%). MarsCode — упоминание сейчас, переключение в Модуле 5 (когда строим свои Skills и хочется сэкономить).
Codex (OpenAI), Antigravity (Google) — параллели той же категории. Не учим в курсе, но менторы должны слышать названия. Если ученик спросит «а что про Codex» — это тот же tool use loop, другой вендор.
Кейс: ментор Зухра, точка Yunusobod, группа Python 7-9 лет, 6 детей. Открывает Claude Code в репе со стартер-проектами. Просит одно и то же. Сначала без контракта, потом — с ним.
$ cd ~/mars-lessons/python-7-9 && claude# агент стартует с чистого листа > помоги добавить ещё одну игру про математику для моих учеников Claude: Я готов помочь. Пара вопросов, чтобы понять контекст: 1. Какой возраст учеников? 2. На каком языке объяснения в комментариях? 3. Какие библиотеки разрешены? 4. Насколько подробно комментировать? 5. ООП можно или процедурный стиль? # 3 минуты пинг-понга на каждой сессии.
$ 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 секунд до результата.
Вот файл, который лежит в репе Зухры. Скопируй как стартер — это один из трёх готовых шаблонов 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/` — там готовые решения для следующих групп.
Тот же шаблон «кто читает / конвенции / 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. Возьми один как образец и подгони под свою группу.
CLAUDE.md живёт в нескольких местах. Каждый уровень — свой scope. Грузятся в порядке «от широкого к узкому» и конкатенируются в контекст. Более узкий scope дополняет предыдущий, а при конфликте обычно побеждает — потому что он появляется в контексте последним и модель видит его как более актуальное.
/Library/Application Support/ClaudeCode/CLAUDE.md (macOS), /etc/claude-code/CLAUDE.md (Linux). Ставит IT/DevOps. Применяется ко всем. Для Mars MVP — пусто, тут пока ничего.~/.claude/CLAUDE.md · твои личные предпочтения для всех проектов. Язык работы, как ты любишь чтобы агент с тобой говорил, что делаешь чаще всего../CLAUDE.md или ./.claude/CLAUDE.md · командная договорённость. Лежит в git. Возраст детей, конвенции стека, запреты на библиотеки. Самое важное для ментора../CLAUDE.local.md · личные заметки по конкретному проекту. В .gitignore. Sandbox-URL, тестовые данные, личные напоминания.~/.claude/CLAUDE.md написано «отвечай по-английски». В ./CLAUDE.md проекта — «отвечай по-русски, объясняем детям». Project ближе → обычно побеждает русский — он последний в контексте. Anthropic честно предупреждает: при конфликтующих инструкциях Claude может выбрать произвольно, гарантии strict compliance нет. Если важно — пишите non-conflicting правила.
CLAUDE.md умеет включать другие файлы через синтаксис @path. Глубина рекурсии — до 4 уровней. Удобно когда нужно подтянуть README, package.json, конвенции из другого репозитория или личные предпочтения из home.
./CLAUDE.md · фрагмент# Project overview See @README.md for context and @package.json for npm scripts. # Git workflow - следуй @docs/git-instructions.md - мои личные предпочтения: @~/.claude/my-mars-preferences.md
Claude Code читает CLAUDE.md, не AGENTS.md. Но AGENTS.md — это формат для разных AI-агентов (на 2026 — Cursor, opencode, MarsCode и др., нужна перепроверка): одним файлом можно конфигурировать несколько инструментов. Если в репе уже есть AGENTS.md, делаем тонкий CLAUDE.md поверх через import:
./CLAUDE.md · поверх AGENTS.md@AGENTS.md ## Claude-specific - Use plan mode for changes under `src/billing/`.
Тогда Claude читает AGENTS.md как часть своего контракта плюс добавляет свои нюансы. Для Mars: пока MarsCode-fork в активной работе — писать AGENTS.md и делать CLAUDE.md → @AGENTS.md, чтобы оба инструмента смотрели в один файл.
Альтернатива — симлинк (ln -s AGENTS.md CLAUDE.md). Работает, но на Windows требует Developer Mode. Import надёжнее.
Дополнительно агент сам ведёт заметки в ~/.claude/projects/<project>/memory/MEMORY.md. Build commands, debug insights, паттерны которые он заметил при работе с тобой. Грузятся первые 200 строк (или 25KB) автоматически каждую сессию.
Это дополнение, не замена CLAUDE.md. CLAUDE.md — то, что ты хочешь чтобы агент всегда знал. Auto memory — то, что он сам узнал по ходу работы и решил запомнить. Команда /memory показывает оба и даёт открыть на редактирование.
Четыре части. Сделай руками в терминале, не читай как теорию. После этого у тебя будет рабочая user+project пара CLAUDE.md и проверенный /memory.
На Mac/Linux: curl -fsSL https://claude.ai/install.sh | bash. На Windows PowerShell: irm https://claude.ai/install.ps1 | iex. Проверить: claude --version. Первый запуск попросит логин.
Создай файл, скопируй шаблон ниже и подгони под себя. Это то, что Claude знает про тебя в любом проекте.
~/.claude/CLAUDE.md# О себе Я ментор Mars IT School, точка <X>, веду <стек> для возраста <Y>. Язык работы: русский. Английский для технических терминов. # Стиль работы с агентом - Объясняй мне план до того как редактировать файлы (используй plan mode когда уместно) - Если не уверен в API/библиотеке — спрашивай, не выдумывай - Когда пишешь код, который пойдёт детям — короткие строки, простые имена, комментарии на русском - Перед коммитом всегда покажи git diff, не коммить сам # Что я обычно делаю - Готовлю стартер-проекты к занятиям - Проверяю код учеников - Пишу внутренние скрипты для Mars~ 10 мин
Выбери одну учебную репу. Возьми один из трёх готовых шаблонов в starters.md (Зухра-Python-7-9, Тимур-Python-олимп-12-14, Шахзод-React-15-17) как образец — copy-paste и подгони под свою группу. Минимум три секции: «кто читает этот код», «конвенции», «workflow». Размер — до 200 строк, иначе адекватность падает.
Альтернатива — команда /init в репе: Claude Code сам пройдётся по коду и сгенерирует первичный CLAUDE.md (а если в репе уже есть AGENTS.md — учтёт его содержимое).
Запусти claude в той же папке. В сессии набери /memory — должен увидеть оба файла в списке. Если user-файл не появился — проверь путь (он именно ~/.claude/CLAUDE.md, не ~/.claude/Claude.md).
Дай простой запрос: «добавь функцию приветствия». Убедись, что агент пишет в духе CLAUDE.md (язык, стиль, запреты). Если нет — сделай /memory, открой файлы, посмотри что туда попало.
.claude/rules/ (path-scoped) или в Agent Skill (Модуль 5).
В твоём ~/.claude/CLAUDE.md написано «пиши на английском». В ./CLAUDE.md учебной репы — «пиши на русском, объясняем детям». Запускаешь claude в этой папке и просишь добавить функцию. На каком языке агент напишет комментарии?
Две недели назад ты сделал в учебной репе ./CLAUDE.md с правилом «не использовать f-strings». Открываешь репу заново, набираешь claude. Какой файл с твоими конвенциями загрузится автоматически в начале сессии?
~/.claude/CLAUDE.md — project-файл подтягивается по запросу.~/.claude/CLAUDE.md и ./CLAUDE.md — они конкатенируются в стартовый контекст сессии./memory в сессии показывает, что именно загрузилось — это первый чек если кажется, что агент «забыл» твои правила.В репе Mars уже лежит AGENTS.md — там общие конвенции для MarsCode и Cursor. Ты хочешь добавить одну строчку специально для Claude Code: «используй plan mode перед правками в src/billing/». Что делать?
CLAUDE.md с первой строкой @AGENTS.md и Claude-specific правилом ниже — оба инструмента смотрят в один источник.CLAUDE.md, но синтаксис @AGENTS.md подтягивает содержимое импортом — без дублирования. Вариант (a) работает, но создаёт две копии одних и тех же правил, которые быстро разъезжаются. Вариант (c) ломает MarsCode и Cursor, которые ищут именно AGENTS.md. Альтернатива импорту — симлинк ln -s AGENTS.md CLAUDE.md, но на Windows для этого нужен Developer Mode._lib/claude-code-cheatsheet.md.
У тебя теперь есть постоянная подпись — агент в любом проекте Mars знает, кто ты и для кого пишешь. Следующий обязательный модуль — четвёртый (модули 2-3 идут после фидбэка): про working memory и context engineering. Что такое /compact, почему agent «тупеет» к вечеру долгой сессии, как пользоваться sub-agent'ами как способом изоляции контекста. Это модуль, ради которого курс существует.
Модули 2-3 (Delegation × NTP, Description × Knowledge) и Модуль 5 (свои Sub-agents и Agent Skills) — после пилотного фидбэка от первых менторов.