Mars mentorlari uchun kursning birinchi moduli. AI bilan chat haqida emas — agentic coding tool: terminalda Claude Code, MarsCode (bizning fork), va nima uchun loyihadagi bitta markdown-fayl hamma narsani o'zgartiradi.
ChatGPT'ni ochasiz. Funksiyani nusxalaysiz. «Xatoni tuzat». Kodni olasiz. Muharrirga joylaysiz. Ishlamaydi. Xatoni qayta nusxalaysiz. Besh marta shunday. Kontekst sizning boshingizda yashaydi, modelda emas.
Loyiha papkasida siz claude yozasiz. Agent o'zi 7 ta faylni o'qiydi, xatoni topadi, tuzatadi, testlarni ishga tushiradi. Siz diff'ni ko'rasiz va «merge» deysiz.
Bular turli toifalar. Chat — suhbatdosh. Agent — vositalarga ega ijrochi. Va ijrochining shartnomasi bo'lishi kerak. Bu shartnoma CLAUDE.md deb ataladi.
Bu modulda — agentic coding tool nima ekanligi, u chatdan qanday farq qiladi va o'zingizning birinchi CLAUDE.md (foydalanuvchi darajasida va Mars loyihasida) qanday yozish kerakligi, shunda har bir sessiyada agentga kimligingizni va kim uchun kod yozayotganingizni tushuntirishni to'xtatasiz.
/memory orqali kerakli CLAUDE.md fayllari haqiqatan ham yuklanganligiga ishonch hosil qilasiz.~/.claude/CLAUDE.md (siz mentor sifatida) va ./CLAUDE.md bitta o'quv repo'sida (bu guruh haqida).AGENTS.md va CLAUDE.md o'rtasidagi farqni tushuntirasiz va qachon qaysi birini (yoki ikkalasini ham @AGENTS.md-import).Anthropic buni bir jumla bilan ta'riflaydi:
Chatdan asosiy farqi — loop of tool calls, bitta replika emas. Siz vazifani yozasiz. Model hal qiladi: “avval faylni o‘qiyman”. Read vositasini chaqiradi. Tarkibini oladi. Keyin o‘ylaydi. Hal qiladi: “endi tahrirlayman”. Editni chaqiradi. Keyin testlar uchun Bash. Va shu tarzda vazifa yopilmaguncha yoki sizga savol tug‘ilmaguncha davom etadi.
Har bir pastga qarab strelka — bu modelning yangi chaqiruvi. Katta vazifalarda ularning soni o‘nlab bo‘ladi. Siz buni TUI’da yarim shaffof oqim sifatida ko‘rasiz: Reading src/auth.py, Editing tests/test_login.py, Running pytest.
Claude Code bitta oynaga bog‘lanmagan. Bu bir xil konfiguratsiya (CLAUDE.md, settings, MCP) bir nechta surface’larda. Vazifaga qarab tanlaysiz, odatga qarab emas.
Mars o‘z agentini ushlab turadi — MarsCode, fork of sst/opencode. OpenAI-mos API, Mars Token Factory orqali ishlaydi — bu bizning Mars coin’larida hamyoni bo‘lgan LLM-proksi. Nima uchun fork: Anthropic-only stek o‘quvchilarga ommaviy tarqatishda qimmat, MarsCode token-factory orqali arzon modellarga yo‘naltiriladi. Mentorlarga balans beramiz.
MVP-kursda biz Claude Code (baseline, Anthropic hujjatlari 100% qamrab oladi) bo‘yicha o‘rgatamiz. MarsCode — hozircha eslatma, 5-modulda (o‘z Skill’larimizni qurayotganimizda va tejashni istaganimizda) o‘tish.
Codex (OpenAI), Antigravity (Google) — xuddi shu toifadagi parallellar. Kursda o‘rgatmaymiz, lekin mentorlar nomlarini eshitishlari kerak. Agar o‘quvchi “Codex haqida nima deysiz” deb so‘rasa — bu xuddi shu tool use loop, boshqa vendor.
Keys: mentor Zuhra, Yunusobod nuqtasi, Python 7-9 yoshli guruh, 6 bola. Starter-proyektlar repoda Claude Code’ni ochadi. Bir xil narsani so‘raydi. Avval kontraktlarsiz, keyin — u bilan.
$ cd ~/mars-lessons/python-7-9 && claude# agent toza sahifadan boshlaydi > o‘quvchilarim uchun yana bitta matematika o‘yinini qo‘shishga yordam bering Claude: Yordam berishga tayyorman. Kontekstni tushunish uchun bir nechta savollar: 1. O‘quvchilarning yoshi nechida? 2. Izohlardagi tushuntirishlar qaysi tilda? 3. Qaysi kutubxonalarga ruxsat berilgan? 4. Qanchalik batafsil izohlash kerak? 5. OOP mumkinmi yoki protseduraviy uslubmi? # Har bir sessiyada 3 daqiqa ping-pong.
$ cd ~/mars-lessons/python-7-9 && claude# agent ./CLAUDE.md faylini avtomatik o'qiydi > o‘quvchilarim uchun yana bitta matematika o‘yinini qo‘shishga yordam bering Claude: Loyiha uslubida "Sonni top" starterini yarataman: • pygame + random, f-stringsiz • o'zgaruvchilar rus-lotin tilida • har 2 qatorga izoh • qisqa sarlavha "Bu dastur nimani bajaradi" Uslub uchun 01-circle.py faylini o'qidim. 06-guess-number.py faylini yarataman. Edit: 06-guess-number.py (+38) Bash: python3 -m py_compile ✓ # Natijaga 40 soniya qoldi.
Mana Zuhra repoda turgan fayl. Uni starter sifatida nusxalab oling — bu uchta tayyor pre-build shablonlaridan biri:
./CLAUDE.md · mars-lessons/python-7-9# Mars IT School — 7-9 yoshli guruh uchun Python # Yunusobod filiali, mentor Zuhra ## Bu kodni kim o'qiydi - 7-9 yoshli bolalar, to'rttasi birinchi marta dasturlashni ko'rmoqda. - Tushuntirish tili: rus tili. O'zgaruvchilar nomlarida o'zbek lotin alifbosi qo'llanilishi mumkin, agar bu yordam bersa (`tugma` o'rniga `button`). - Terminologiya: "funksiya", "klass", "tsikl" so'zlarini izohda kundalik analogiya orqali tushuntirmasdan ishlatmaslik kerak. ## Kod konvensiyalari - **Har bir qator rus tilida izohlanadi.** Bu sotish uchun kod emas, bu dars uchun kod. - O'zgaruvchilar nomlari — oddiy so'zlar yoki translit (`schyot`, `score_counter` emas). - Faqat `pygame` va `random`. f-strings, list comprehensions, dataclasses ishlatmaslik kerak. - Fayl har doim "Bu dastur nimani bajaradi" degan qisqa izoh bilan 1 qatorda boshlanadi. ## Workflow - Har bir fayl `python3 file.py` orqali argumentlarsiz ishga tushirilishi kerak. - Commit qilishdan oldin — `python3 -m py_compile file.py` (sintaksisni tekshirish). - `.solutions/` ni tahrirlamang — u yerda keyingi guruhlar uchun tayyor yechimlar mavjud.
Xuddi shu "kim o'qiydi / konvensiyalar / workflow" shabloni — lekin boshqa auditoriya. Timur, Chilonzor filiali, Python ikkinchi yil, 12-14 yoshli olimpiadachilarni tayyorlaydi. Zuhra bilan solishtiring:
./CLAUDE.md · mars-lessons/python-olymp-12-14# Mars IT School — 12-14 yoshli guruh uchun Python olimpiadasi # Chilonzor filiali, mentor Timur ## Bu kodni kim o'qiydi - 12-14 yoshli bolalar, Python ikkinchi yil, Respublika informatika olimpiadasiga tayyorlanmoqda. - Tushuntirish tili: rus tili. O'zgaruvchilar nomlari — ingliz tilida (olimpiada ingliz tilida, boshqacha o'rganishning ma'nosi yo'q). - Bilishadi: funksiyalar, tsikllar, lug'atlar, generatorlar. BILMASLIGI KERAK: klasslar, dataclasses, async. ## Kod konvensiyalari - To'liq tipizatsiya: `def solve(n: int) -> list[int]:` — signaturalarni o'qishni o'rgatamiz. - Murakkab algoritmlar — albatta `doctest` yoki `assert` masala shartidan misol bilan. - Yechim `./tests/` dagi testlardan o'tishi kerak (`pytest`). - Har bir fayl docstring bilan boshlanadi: masala, cheklovlar, vaqt/xotira bo'yicha murakkablik. - `math`, `collections`, `itertools`, `heapq`, `bisect` dan tashqari uchinchi tomon kutubxonalarini ishlatmaslik kerak — olimpiada to'plami. ## Workflow - Commit qilishdan oldin — `pytest -q` (hammasi yashil). - Yechimlar `./solutions/` da, testlar `./tests/` da.
Zuhra uchun — tipizatsiya va list comprehensions taqiqlangan, Timur uchun — majburiy tipizatsiya. Bir shablon, ikki xil shartnoma. Uchinchi shablon — Shahzod, Sergeli, React/TypeScript 15-17 — faylda yonma-yon joylashgan starters.md. Birini namuna sifatida oling va o'z guruhingizga moslashtiring.
CLAUDE.md bir nechta joyda yashaydi. Har bir daraja — o'z scope'i. "Kengdan torga" tartibida yuklanadi va kontekstga birlashtiriladi. Torroq scope oldindagisini to'ldiradi, va ziddiyat yuzaga kelsa odatda g'alaba qozonadi — chunki u kontekstda oxirgi bo'lib paydo bo'ladi va model uni dolzarbroq deb biladi.
/Library/Application Support/ClaudeCode/CLAUDE.md (macOS), /etc/claude-code/CLAUDE.md (Linux). IT/DevOps o'rnatadi. Hammaga qo'llaniladi. Mars MVP uchun — bo'sh, bu yerda hozircha hech narsa yo'q.~/.claude/CLAUDE.md · barcha loyihalar uchun shaxsiy afzalliklaringiz. Ish tili, agent siz bilan qanday gaplashishini xohlaysiz, ko'pincha nima qilasiz../CLAUDE.md yoki ./.claude/CLAUDE.md · jamoaviy kelishuv. Gitda joylashgan. Bolalar yoshi, stek konvensiyalari, kutubxonalarga taqiqlar. Mentor uchun eng muhimi../CLAUDE.local.md · aniq loyiha bo'yicha shaxsiy eslatmalar. .gitignoreda. Sandbox-URL, test ma'lumotlari, shaxsiy eslatmalar.~/.claude/CLAUDE.mdda “inglizcha javob ber” deb yozilgan. Loyihaning ./CLAUDE.mdda esa “ruscha javob ber, bolalarga tushuntiramiz” deyilgan. Project yaqinroq → odatda rus tili gʻolib chiqadi — u kontekstdagi oxirgi. Anthropic ochiqchasiga ogohlantiradi: agar koʻrsatmalar ziddiyatli boʻlsa, Claude oʻzboshimchalik bilan tanlashi mumkin, strict compliance kafolati yoʻq. Agar muhim boʻlsa — ziddiyatli boʻlmagan qoidalar yozing.
CLAUDE.md boshqa fayllarni @path sintaksisi orqali qoʻshishni biladi. Rekursiya chuqurligi — 4 darajagacha. README, package.json, boshqa repozitoriyadan konvensiyalar yoki home’dan shaxsiy preferensiyalarni tortib olish kerak boʻlganda qulay.
./CLAUDE.md · fragment# Project overview See @README.md for context and @package.json for npm scripts. # Git workflow - @docs/git-instructions.md ga amal qil - mening shaxsiy preferensiyalarim: @~/.claude/my-mars-preferences.md
Claude Code CLAUDE.mdni oʻqiydi, AGENTS.mdni emas. Lekin AGENTS.md — bu turli AI-agentlar uchun format (2026 yilga kelib — Cursor, opencode, MarsCode va boshqalar, qayta tekshirish kerak): bitta fayl bilan bir nechta vositani sozlash mumkin. Agar repoda allaqachon AGENTS.md mavjud boʻlsa, import orqali ustiga yupqa CLAUDE.md qilamiz:
./CLAUDE.md · AGENTS.md ustidan@AGENTS.md ## Claude-specific - Use plan mode for changes under `src/billing/`.
Shunda Claude AGENTS.md ni oʻz shartnomasining bir qismi sifatida oʻqiydi va oʻz nuanslarini qoʻshadi. Mars uchun: MarsCode-fork faol ishda ekan — AGENTS.md yozib, CLAUDE.md → @AGENTS.md qilish, toki ikkala vosita ham bitta faylga qarasin.
Alternativa — simlink (ln -s AGENTS.md CLAUDE.md). Ishlaydi, lekin Windowsda Developer Mode talab qiladi. Import ishonchliroq.
Qoʻshimcha ravishda agentning oʻzi ~/.claude/projects/<project>/memory/MEMORY.mdda eslatmalar yuritadi. Build buyruqlari, debug insights, sen bilan ishlashda sezgan naqshlar. Har bir sessiyada dastlabki 200 qator (yoki 25KB) avtomatik ravishda yuklanadi.
Bu CLAUDE.md ni toʻldiradi, oʻrnini bosmaydi. CLAUDE.md — bu sen agent har doim bilishini istagan narsa. Auto memory — bu uning oʻzi ish jarayonida bilib olgan va eslab qolishga qaror qilgan narsa. /memory buyrugʻi ikkalasini ham koʻrsatadi va tahrirlash uchun ochish imkonini beradi.
Toʻrt qism. Terminalda qoʻlda bajar, nazariya sifatida oʻqima. Shundan soʻng sening ishlaydigan user+project CLAUDE.md juftliging va tekshirilgan /memory.
Mac/Linux'da: curl -fsSL https://claude.ai/install.sh | bash. Windows PowerShell'da: irm https://claude.ai/install.ps1 | iex. Tekshirish: claude --version. Birinchi ishga tushirishda login so'raydi.
Fayl yarating, quyidagi shablonni nusxalang va o'zingizga moslang. Bu Claude siz haqingizda har qanday loyihada biladigan ma'lumot.
~/.claude/CLAUDE.md# O'zim haqimda Men Mars IT School mentori, <X> nuqtasi, <stek> ni <Y> yoshdagilar uchun olib boraman. Ish tili: rus tili. Texnik terminlar uchun ingliz tili. # Agent bilan ishlash uslubi - Fayllarni tahrirlashdan oldin menga rejani tushuntiring (o'rinli bo'lganda plan mode'dan foydalaning) - Agar API/kutubxonaga ishonchingiz komil bo'lmasa — so'rang, o'ylab topmang - Bolalarga mo'ljallangan kod yozayotganda — qisqa qatorlar, oddiy nomlar, rus tilida kommentariyalar - Commit qilishdan oldin har doim git diff'ni ko'rsating, o'zingiz commit qilmang # Men odatda nima qilaman - Mashg'ulotlar uchun starter-loyihalarni tayyorlayman - O'quvchilar kodini tekshiraman - Mars uchun ichki skriptlar yozaman~ 10 daqiqa
Bitta o'quv repo'sini tanlang. starters.md dagi uchta tayyor shablonlardan birini (Zuhra-Python-7-9, Timur-Python-olimp-12-14, Shahzod-React-15-17) namuna sifatida oling — copy-paste qiling va o'z guruhingizga moslang. Kamida uchta bo'lim: «bu kodni kim o'qiydi», «konvensiyalar», «workflow». Hajmi — 200 qatordan oshmasin, aks holda adekvatlik pasayadi.
Muqobil — repo ichida /init komandasi: Claude Code kodni o'zi ko'rib chiqadi va dastlabki CLAUDE.md'ni yaratadi (agar repo'da allaqachon AGENTS.md mavjud bo'lsa — uning mazmunini hisobga oladi).
O'sha papkada claude ni ishga tushiring. Sessiyada /memory ni tering — ro'yxatda ikkala faylni ham ko'rishingiz kerak. Agar user-fayl paydo bo'lmasa — yo'lni tekshiring (u aynan ~/.claude/CLAUDE.mdni oʻqiydi, ~/.claude/Claude.md).
Oddiy so'rov bering: «salomlashish funksiyasini qo'sh». Agent CLAUDE.md ruhida yozayotganiga ishonch hosil qiling (til, uslub, cheklovlar). Agar yo'q bo'lsa — /memory qiling, fayllarni oching, nima tushganini ko'ring.
.claude/rules/ (path-scoped) ga yoki Agent Skill'ga (5-modul) olib chiqing.
Sening ~/.claude/CLAUDE.md faylingda “ingliz tilida yoz” deb yozilgan. ./CLAUDE.md oʻquv repo’sida esa “rus tilida yoz, bolalarga tushuntiramiz” deb yozilgan. Shu papkada claude ni ishga tushirib, bir funksiya qoʻshishni soʻraysan. Agent sharhlarni qaysi tilda yozadi?
Ikki hafta oldin oʻquv repo’sida “f-strings ishlatmaslik” qoidasi bilan ./CLAUDE.md ni yaratganding. Repo’ni qayta ochib, claude ni terasan. Sessiya boshida sening konvensiyalaring bilan qaysi fayl avtomatik yuklanadi?
~/.claude/CLAUDE.md — project-fayl soʻrov boʻyicha tortiladi.~/.claude/CLAUDE.md va ./CLAUDE.md — ular sessiyaning boshlangʻich kontekstiga birlashtiriladi./memory buyrugʻi aynan nima yuklanganini koʻrsatadi — agar agent sening qoidalaringni “unutgan” deb tuyulsa, bu birinchi tekshiruvdir.Mars repo’sida allaqachon AGENTS.md mavjud — u yerda MarsCode va Cursor uchun umumiy konvensiyalar bor. Sen Claude Code uchun maxsus bir qator qoʻshmoqchisan: “src/billing/ dagi oʻzgarishlardan oldin plan mode’dan foydalan”. Nima qilish kerak?
CLAUDE.md boʻlgan va ostida Claude-ga xos qoidasi boʻlgan yupqa @AGENTS.md ni yaratish — ikkala vosita ham bir manbaga qaraydi.CLAUDE.md ni oʻqiydi, lekin @AGENTS.md sintaksisi import orqali tarkibni tortadi — dublikatsiyasiz. (a) varianti ishlaydi, lekin bir xil qoidalarning ikkita nusxasini yaratadi, ular tezda bir-biridan uzoqlashadi. (c) varianti MarsCode va Cursor’ni buzadi, ular aynan AGENTS.md ni qidiradi. Importga alternativa — ln -s AGENTS.md CLAUDE.md simlinki, lekin Windows’da buning uchun Developer Mode kerak._lib/claude-code-cheatsheet.md.
Endi sening doimiy imzong bor — Mars’dagi har qanday loyihada agent sen kimsan va kim uchun yozayotganingni biladi. Keyingi majburiy modul — toʻrtinchi (2-3-modullar fikr-mulohazadan keyin keladi): working memory va context engineering haqida. Bu nima /compact, nega agent uzoq sessiya oxiriga borib «ahmoqlashadi», sub-agentlardan kontekstni ajratish usuli sifatida qanday foydalanish kerak. Bu kurs aynan shu modul uchun mavjud.
2-3-modullar (Delegation × NTP, Description × Knowledge) va 5-modul (o‘z Sub-agentlari va Agent Skills) — birinchi mentorlardan olingan pilot fikr-mulohazadan so‘ng.