{"_id":"@astral/ai-skills","_rev":"9-2302aea5de6b75869cd6f8492e372a97","name":"@astral/ai-skills","dist-tags":{"latest":"1.5.0"},"versions":{"0.1.0":{"name":"@astral/ai-skills","version":"0.1.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/ai-skills@0.1.0","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"bin":{"ai-skills":"src/cli/main.js"},"dist":{"shasum":"3eb6adae9bbe8f564864a2628bf4ff395f96bdcf","tarball":"https://registry.npmjs.org/@astral/ai-skills/-/ai-skills-0.1.0.tgz","fileCount":18,"integrity":"sha512-7/IzEewSsNG3VdvV2Gad+CyeL1aFI2dfCvmhArc5pmAYYOaPyIG/iG8mAKuD+4RjGMS+OHmvSgALE002gLTmpQ==","signatures":[{"sig":"MEUCIEU/sYFIa5cyEpzmDMuHNhMJ992Keepv/xqOkHTptbtfAiEAtdNaeysRfndJDQWYKwqcwGzL6nhorU+5svuYwT2oatA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32753},"main":"./main.js","engines":{"node":">=20"},"gitHead":"ea7d5e005209daf2027d58f7cd98835fe1d9a943","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/ai-skills","type":"git"},"_npmVersion":"11.13.0","description":"Skills: - [caveman](#caveman) - [unit-testing](#unit-testing) - [styling](#styling)","directories":{},"_nodeVersion":"26.1.0","dependencies":{"@inquirer/prompts":"^7.10.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-skills_0.1.0_1785239575827_0.8456561075422326","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@astral/ai-skills","version":"0.2.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/ai-skills@0.2.0","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"bin":{"ai-skills":"cli/main.js"},"dist":{"shasum":"9b7b5a2a5649cf4273b06a792cba2a6b25c960d0","tarball":"https://registry.npmjs.org/@astral/ai-skills/-/ai-skills-0.2.0.tgz","fileCount":18,"integrity":"sha512-FJE9wdoy4ZY4CXMyc8uK1E47AgXL/mheGqtzB63dHBa6JMIphJJrXUrEAeTm3wSqrWLJtXK8zKO/gCtekV8Wag==","signatures":[{"sig":"MEUCIQCuCSrVPQNuKSQIJ0sU7usmbI42PG7FJsQhfQ1w3zuQAQIgAsQUw51r75letU/Sc5CY52I5+yfr5mdioEFbySwSPZg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32747},"main":"./main.js","engines":{"node":">=20"},"gitHead":"ea7d5e005209daf2027d58f7cd98835fe1d9a943","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/ai-skills","type":"git"},"_npmVersion":"11.13.0","description":"Skills: - [caveman](#caveman) - [unit-testing](#unit-testing) - [styling](#styling)","directories":{},"_nodeVersion":"26.1.0","dependencies":{"@inquirer/prompts":"^7.10.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-skills_0.2.0_1785240267991_0.4979541373733811","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@astral/ai-skills","version":"1.0.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/ai-skills@1.0.0","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"bin":{"ai-skills":"cli/main.js"},"dist":{"shasum":"ff652734e9441cc93eec9b490ae770ffa94932a0","tarball":"https://registry.npmjs.org/@astral/ai-skills/-/ai-skills-1.0.0.tgz","fileCount":18,"integrity":"sha512-ewwHVpvYghZ7A2kFdFd23iWhIEHsmmlvdtZ2CWtngdlv6fSbuG49MziYLI4+/G9IKwa/V+/Dbmxj52w9FVoexQ==","signatures":[{"sig":"MEUCIQD91BklwjfjVR/seG1nP6dDxtk/JgqyfKxlcs0wg9p4nAIgI22FUuqJrcljCzuxMJGMUFGjlWWBOOQTxoFyV3LAFSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32747},"main":"./main.js","engines":{"node":">=20"},"gitHead":"3142f813ccc46fcac9283fe7cadc76d307411e25","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/ai-skills","type":"git"},"_npmVersion":"11.13.0","description":"Skills: - [caveman](#caveman) - [unit-testing](#unit-testing) - [styling](#styling)","directories":{},"_nodeVersion":"26.1.0","dependencies":{"@inquirer/prompts":"^7.10.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-skills_1.0.0_1785240540449_0.45345949283961096","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@astral/ai-skills","version":"1.1.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/ai-skills@1.1.0","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"bin":{"ai-skills":"cli/main.js"},"dist":{"shasum":"89a7a74a24207855dc01600e6f2ed7fbf346ac04","tarball":"https://registry.npmjs.org/@astral/ai-skills/-/ai-skills-1.1.0.tgz","fileCount":18,"integrity":"sha512-CaBHuTyjfD+dKr5wl2lvIi2Pd7GFX8/6I8dF7q/UAjdNmFZ1PjMYR+5QuCkFJgpmDSDKU91WNGwJRa3Pu5s72g==","signatures":[{"sig":"MEYCIQCEOnI6oZBvtA6k0d2EkuKADrVahotERcyT4V0Cf9Oc0AIhAMdgDgFqubu/6+K9T+ESorAiRBh3l6GkBgehrWSEYjG0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32985},"main":"./main.js","engines":{"node":">=20"},"gitHead":"e433ffb8166ef77c8648776a2092ba68009bb638","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/ai-skills","type":"git"},"_npmVersion":"11.13.0","description":"Skills: - [caveman](#caveman) - [unit-testing](#unit-testing) - [styling](#styling)","directories":{},"_nodeVersion":"26.1.0","dependencies":{"@inquirer/prompts":"^7.10.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-skills_1.1.0_1785247587458_0.7013254565444624","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@astral/ai-skills","version":"1.2.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/ai-skills@1.2.0","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"bin":{"ai-skills":"cli/main.js"},"dist":{"shasum":"35b37ca2e2d94ebd1ef0284a018e7be0b2115e33","tarball":"https://registry.npmjs.org/@astral/ai-skills/-/ai-skills-1.2.0.tgz","fileCount":29,"integrity":"sha512-HDW/jmm65oPC+NlvkDA3neTB6gKRHZcj+o/qFm4cwc++1NFYbJDF1+OS6ooyrpeyBakeJLn+nsw6N71iMyHkpQ==","signatures":[{"sig":"MEYCIQDBV0UBM/t2DOy0QfIiB3xsT0+kiRcf+4cAQ06z6JrpmQIhAIcyW89iTvvr+9Wi291E2LcB1DlALCbvk3V52ZKLBud1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61411},"main":"./main.js","engines":{"node":">=20"},"gitHead":"4bc7a026b89c60aa4ec459d34dc3eb4146970c34","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/ai-skills","type":"git"},"_npmVersion":"11.13.0","description":"Skills: - [mcp-adocs](#mcp-adocs) - [caveman](#caveman) - [unit-testing](#unit-testing) - [styling](#styling) - [style-guide](#style-guide) - [architecture](#architecture) - [code-review](#code-review) - [git-code-review](#git-code-review)","directories":{},"_nodeVersion":"26.1.0","dependencies":{"@inquirer/prompts":"^7.10.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-skills_1.2.0_1786028420085_0.06647289272235257","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@astral/ai-skills","version":"1.3.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/ai-skills@1.3.0","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"bin":{"ai-skills":"cli/main.js"},"dist":{"shasum":"0e60346e01b5917ae63d6901147d2b44b8ca89f6","tarball":"https://registry.npmjs.org/@astral/ai-skills/-/ai-skills-1.3.0.tgz","fileCount":29,"integrity":"sha512-jrFAwwjzF4azeZ/qVh1zmGiDpQ6+0MYeApDB8xmpC8QpAaeOF1xDiRcw+EVkEAJBIvtUJwwn7m8wi3536ALuDg==","signatures":[{"sig":"MEQCIDzOyLC9RXwzSLAF0rImeQGzi/Mjv4ZE9ZMdzLpk7fOoAiAaG7aK/SO3zNZ06YU/ihbSynFYAadXXsVEq857mwUvNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63836},"main":"./main.js","engines":{"node":">=20"},"gitHead":"68af2eed065ce2b1bcb1a6695b2eed15e5a119f0","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/ai-skills","type":"git"},"_npmVersion":"11.13.0","description":"Skills: - [mcp-adocs](#mcp-adocs) - [caveman](#caveman) - [unit-testing](#unit-testing) - [styling](#styling) - [style-guide](#style-guide) - [architecture](#architecture) - [code-review](#code-review) - [git-code-review](#git-code-review)","directories":{},"_nodeVersion":"26.1.0","dependencies":{"@inquirer/prompts":"^7.10.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-skills_1.3.0_1786082713307_0.893684241981427","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@astral/ai-skills","version":"1.4.0","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/ai-skills@1.4.0","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"bin":{"ai-skills":"cli/main.js"},"dist":{"shasum":"b4ce403dcff4e4fca3b4b44c335203a28a947416","tarball":"https://registry.npmjs.org/@astral/ai-skills/-/ai-skills-1.4.0.tgz","fileCount":29,"integrity":"sha512-vNa8nKAugFhg5YDytvAjhx9xMDJrL365/+G2SzrlZM0pXkVJWE3jL5rODLqpoqs+xvgkUpX8mHtoL5F6Y7N+7Q==","signatures":[{"sig":"MEUCIEqHQReelcnKTt/RDs8FVLHh5tdeviJoWcs9XR9Hl0bVAiEAtHkySMYtjMjpd1nicErh0MY/il3a49RbH6MTHG1+ER8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63798},"main":"./main.js","engines":{"node":">=20"},"gitHead":"439803187ea118474ab6aa77b9d0dbbc53dbe1c5","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/ai-skills","type":"git"},"_npmVersion":"11.13.0","description":"Skills: - [mcp-adocs](#mcp-adocs) - [caveman](#caveman) - [unit-testing](#unit-testing) - [styling](#styling) - [style-guide](#style-guide) - [architecture](#architecture) - [code-review](#code-review) - [git-code-review](#git-code-review)","directories":{},"_nodeVersion":"26.1.0","dependencies":{"@inquirer/prompts":"^7.10.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-skills_1.4.0_1786620605354_0.4088616295679779","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@astral/ai-skills","version":"1.4.1","author":{"name":"Astral.Soft"},"license":"MIT","_id":"@astral/ai-skills@1.4.1","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"bin":{"ai-skills":"cli/main.js"},"dist":{"shasum":"c6646ba1cabd07805bfa49339affb8b9de780cce","tarball":"https://registry.npmjs.org/@astral/ai-skills/-/ai-skills-1.4.1.tgz","fileCount":29,"integrity":"sha512-LEz48np8qSr0mwdnl1JzNSMRzPCDNy7jbQ1JEBFy3wds8R8Ukk7B25Rwq3g1hQHcB5o+XmjucO6RII4RoO3thA==","signatures":[{"sig":"MEYCIQCXcCWfaHwMn7p8KPz8Ot/tD/VleO9xmO3y7pgbuhcSpwIhANNnfl1XKvrEbRntXpJ1lkzMZkj5UCatHamRItleURX5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64036},"main":"./main.js","engines":{"node":">=20"},"gitHead":"1fb24618226f2ebe2a4232207bc1500de65dbd12","_npmUser":{"name":"astral_frontend","email":"frontendastral@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/ai-skills","type":"git"},"_npmVersion":"11.13.0","description":"Skills: - [mcp-adocs](#mcp-adocs) - [caveman](#caveman) - [unit-testing](#unit-testing) - [styling](#styling) - [style-guide](#style-guide) - [architecture](#architecture) - [code-review](#code-review) - [git-code-review](#git-code-review)","directories":{},"_nodeVersion":"26.1.0","dependencies":{"@inquirer/prompts":"^7.10.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ai-skills_1.4.1_1786621460929_0.10297487673710393","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"_id":"@astral/ai-skills@1.5.0","bin":{"ai-skills":"cli/main.js"},"dist":{"shasum":"cf120c50ae9546026883b942ce8d600c41c4d7bb","tarball":"https://registry.npmjs.org/@astral/ai-skills/-/ai-skills-1.5.0.tgz","fileCount":30,"integrity":"sha512-vfj149c7CqSge9p/IBWU0lmhFtoeX4P8TWYGVdOWdpM+LUClHK7MhkPA521nJruSSkzko9uTFJ9PqmyUHBVGTw==","signatures":[{"sig":"MEUCIQCKwb5WEpiDC1ZGzgike0OflbV8ohGnPh/wkEKUZi93PgIgJ1k2SIcybiQKXQ4QaNRGoFp9z2VJ244pVxgX6mDL9dY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAVrdD2dB0Dz7yFYrnuD/99ky0+7WRoz0b+wXUUd63MhAiA2A5qL4Twmm3vbMIADg0v3a72cTRiPIly2D32/v9sCmA=="}],"unpackedSize":64384},"main":"./main.js","name":"@astral/ai-skills","author":{"name":"Astral.Soft"},"engines":{"node":">=20"},"gitHead":"0837d2d7167c3f7bcb9438af66748e49bd428ded","license":"MIT","version":"1.5.0","_npmUser":{"name":"and_tem","email":"and.tem.dev@gmail.com"},"repository":{"url":"https://git.astralnalog.ru/frontend.shared/ai-skills","type":"git"},"_npmVersion":"11.13.0","description":"Skills: - [mcp-adocs](#mcp-adocs) - [caveman](#caveman) - [unit-testing](#unit-testing) - [styling](#styling) - [style-guide](#style-guide) - [architecture](#architecture) - [code-review](#code-review) - [git-code-review](#git-code-review)","directories":{},"maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"_nodeVersion":"26.1.0","dependencies":{"@inquirer/prompts":"^7.10.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-skills_1.5.0_1790230679183_0.9636252012348492"}}},"time":{"created":"2026-07-28T11:52:55.671Z","modified":"2026-09-24T06:17:59.476Z","0.1.0":"2026-07-28T11:52:56.220Z","0.2.0":"2026-07-28T12:04:28.147Z","1.0.0":"2026-07-28T12:09:00.597Z","1.1.0":"2026-07-28T14:06:27.646Z","1.2.0":"2026-08-06T15:00:20.263Z","1.3.0":"2026-08-07T06:05:13.456Z","1.4.0":"2026-08-13T11:30:05.495Z","1.4.1":"2026-08-13T11:44:21.106Z","1.5.0":"2026-09-24T06:17:59.278Z"},"author":{"name":"Astral.Soft"},"license":"MIT","repository":{"url":"https://git.astralnalog.ru/frontend.shared/ai-skills","type":"git"},"description":"Skills: - [mcp-adocs](#mcp-adocs) - [caveman](#caveman) - [unit-testing](#unit-testing) - [styling](#styling) - [style-guide](#style-guide) - [architecture](#architecture) - [code-review](#code-review) - [git-code-review](#git-code-review)","maintainers":[{"name":"and_tem","email":"and.tem.dev@gmail.com"},{"name":"astral_frontend","email":"frontendastral@gmail.com"}],"readme":"# Frontend ai skills\n\nSkills:\n- [mcp-adocs](#mcp-adocs)\n- [caveman](#caveman)\n- [unit-testing](#unit-testing)\n- [styling](#styling)\n- [style-guide](#style-guide)\n- [architecture](#architecture)\n- [code-review](#code-review)\n- [git-code-review](#git-code-review)\n\n## Требования\n\nДля коректной работы skills необходимо настроить [Astral Frontend MCP (adoc)](https://mcp-docs-frontend.astralnalog.ru/).\n\n## CLI\n\n### Установка skills\n\nУстановите skills в корень вашего проекта через CLI:\n\n```bash\nnpx @astral/ai-skills install\n# или\npnpm dlx @astral/ai-skills install\n```\n\nCLI интерактивно спросит:\n1. **Агент** — Claude, Cursor или Codex и другие\n2. **Skills** — какие skills установить (список формируется автоматически из пакета)\n\nSkills копируются в:\n- **Claude** → `.claude/skills/<skill-name>/`\n- **Cursor** → `.cursor/skills/<skill-name>/`\n- **Codex и другие** → `.agents/skills/<skill-name>/`\n\nПри повторной установке `extends.md` не перезаписывается — ваши локальные правила сохраняются.\n\n### Обновление\n\n```bash\n# все установленные skills в проекте\nnpx @astral/ai-skills update\n\n# или выборочно\nnpx @astral/ai-skills update unit-testing styling\n```\n\nБез аргументов обновляет все skills, которые уже установлены в проекте. С аргументами — только указанные.\n\nОбновление выполняется во всех найденных директориях агентов (`.claude`, `.cursor` и/или `.agents`). В логах выводится список обновлённых skills.\n\n`extends.md` при обновлении не трогается — локальные правила сохраняются.\n\n### Список доступных и установленных skills\n\n```bash\nnpx @astral/ai-skills list\n```\n\n### Проверка обновлений\n\n```bash\nnpx @astral/ai-skills check-updates\n```\n\nПоказывает, у каких установленных skills есть отличия от пакета (`extends.md` не учитывается).\n\n## Расширение skills\n\nИзменять `SKILL.md` нельзя потому что после обновления ваши правки будут удалены.\n\nДля расширения skill локальными правилами создайте `extends.md` в директории skill:\n```\nunit-testing/\n├── SKILL.md\n├── extends.md\n```\n\nВ каждом skill уже содержится информация о взаимодействии с `extends.md`.\n\n## Skills\n\nАгент выбирает skill по полю `description` в `SKILL.md`. Skill с `disable-model-invocation: true` не подхватывается автоматически — только при явном вызове в промпте или через `@skill-name`.\n\n### MCP adocs\n\n- Оптимизирует взаимодействие ИИ агента с [adocs mcp](https://mcp-docs-frontend.astralnalog.ru/).\n- Описывает как взаимодействовать с tools.\n- Рекомендует запускать анализ информации через subagents\n\n**Когда включается:** автоматически перед любым вызовом MCP adocs (поиск в документации пакетов `@astral/*`, стандарты, UI-kit).\n\n### Caveman\n\nСокращает объем output токенов до 70% благодаря исключению из текста \"воды\".\nАдаптированная версия https://github.com/juliusbrussee/caveman: убрана лишняя информация связанная с китайским.\n\n**Когда включается:** всегда, на каждый ответ агента. Отключение только явным запросом: «stop caveman» / «normal mode». Режимы: lite, full (default), ultra — через `/caveman lite|full|ultra`.\n\n### Unit testing\n\n- Реализация тестов по [guide](https://guides.frontend.cloud.astral-dev.ru/docs/unit-testing/overview)\n- Инкапуслированы документации для тестирования `mobx-query` и `mobx-router` (временно, пока не оптимизирован mcp)\n\n**Когда включается:** автоматически при написании, рефакторинге или генерации unit-тестов в Vitest: тест-кейсы, suites, моки для функций, классов, компонентов, fetchers, router.\n\nПри тестировании хороший результат был получен на моделях:\n- Composer 2.5\n- Gemini 3.5 flash\n- Haiku 4.5\n- Более умные модели справляются без проблем (например, sonnet)\n\n#### Настройка\n\nМодифицируйте `extends.md` в зависимости от агента:\n- Claude → `.claude/skills/unit-testing/extends.md`\n- Cursor → `.cursor/skills/unit-testing/extends.md`\n- Codex и другие → `.agents/skills/unit-testing/extends.md`\n\n- Отредактируйте информацию о запуске тестов\n- Добавьте свои локальные правила\n\n### Styling\n\n- Правила стилизации через `styled` и компоненты ui-kit (`Typography`, `Grid`).\n- [Style guide](https://guides.frontend.cloud.astral-dev.ru/docs/style-guide/rules/react/styled)\n\n**Когда включается:** автоматически при работе со стилями, CSS и вёрсткой: `styled-components`, layout, темы, `Typography`, `Grid`, HTML-структура; при написании или изменении `styles.ts`.\n\n### Style guide\n\nСодержит правила из style guides.\nОсновыне правила в сжатом виде описаны в самом skill.\nПравила, которые нужны не всегда, подгружаются динамически из mcp adocs.\n\n**Когда включается:** автоматически при работе с JS/TS/React: структура файлов, naming, организация кода. Не применяется к файлам `styles.ts` (для них — `styling`).\n\n### Architecture\n\n- Описывает архитектуру. Агент понимает как писать код и куда его помещать (включая UIStore, DI...)\n- Ограничения barrel files\n- Узкие знания про legacy: `repositories`, `external.ts`\n- Дает базовые знания о работе с `mobx-query` (fetchers)\n\n**Когда включается:** автоматически при создании, анализе и рефакторинге кода; при вопросах о структуре проекта, слоях (`app`, `screens`, `modules`, `api`, `shared`), импортах, index-файлах, внешних libs и данных.\n\n### Code review\n\n- Ручной code review указанных файлов по правилам `architecture`, `style-guide`, `styling`, `unit-testing`.\n\n**Когда включается:** автоматически при запросе ревью конкретных файлов, фрагментов кода или списка файлов, которые пользователь явно указал. Агент подтягивает из перечисленных skills только те, что релевантны путям файлов.\n\n### Git code review\n\n- Автоматический сбор изменений через git (unpushed, uncommitted, branch) и проведение code review по правилам из `code-review`.\n- Режимы (default — незапушенные + незакоммиченные): unpushed, только незакоммиченные, diff относительно другой ветки (`code review относительно master`).\n\n**Когда включается:** только явно — skill не подхватывается автоматически (`disable-model-invocation`). Триггеры: «review changes», «code review», «ревью незакоммиченных/незапушенных», «review branch», «code review относительно master» и аналоги.\n","readmeFilename":"README.md"}