{"id":477732,"date":"2026-04-28T09:28:09","date_gmt":"2026-04-28T09:28:09","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=477732"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=477732","title":{"rendered":"10 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a Claude Code, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u0442"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0420\u0430\u043d\u0435\u0435 \u044f \u043f\u0438\u0441\u0430\u043b\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/1027090\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u043e \u0443\u0442\u0435\u0447\u043a\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 Claude Code<\/a>. 512 000 \u0441\u0442\u0440\u043e\u043a, KAIROS, \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043d\u0435\u0440\u0435\u043b\u0438\u0437\u043d\u0443\u0442\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 Opus 4.7 \u0438 Sonnet 4.8. \u0422\u0430\u043a \u0432\u043e\u0442. \u0412 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c Claude Code \u0443\u0436\u0435 \u0435\u0441\u0442\u044c\u00a0<strong>Opus 4.7<\/strong>. \u0420\u043e\u0432\u043d\u043e \u043a\u0430\u043a \u0438 \u0431\u044b\u043b\u043e \u0432 leaked-\u043a\u043e\u0434\u0435. \u0412\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0435\u0439 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u00a0<code>\/effort xhigh<\/code>\u00a0&#8212; \u044d\u0442\u043e \u043c\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u043e\u0436\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c.<\/p>\n<p>\u0412\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/1027090\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a>\u00a0\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0447\u0442\u043e Claude Code \u0443\u043c\u0435\u0435\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u0422\u0438\u043f\u043e\u0432\u043e\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e: &#171;\u043f\u043e\u043d\u044f\u043b, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b, \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c&#187;. \u0418 \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u043e\u0442 \u0436\u0435 \u043f\u043e\u0442\u043e\u043b\u043e\u043a \u0447\u0442\u043e \u0443 \u0432\u0441\u0435\u0445 &#8212; Claude \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e, \u043d\u043e \u043a\u0430\u043a-\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e. \u041e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 \u0441\u0435\u0441\u0441\u0438\u0438, \u043f\u0440\u043e\u0441\u0438\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u0438\u0445, \u0436\u0440\u0451\u0442 \u0442\u043e\u043a\u0435\u043d\u044b \u043a\u0430\u043a \u043d\u0435 \u0432 \u0441\u0435\u0431\u044f.<\/p>\n<p>\u042d\u0442\u043e \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438. \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438. \u041a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u0436\u0430\u0442 \u0432 \u0434\u0432\u0443\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 \u0438 \u043d\u0438\u043a\u0442\u043e \u0434\u043e \u043d\u0438\u0445 \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u0442.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u0434\u0435\u0441\u044f\u0442\u044c \u0432\u0435\u0449\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u0437\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Claude Code \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 &#171;\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442&#187; \u0438 &#171;\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b&#187;. \u0421 \u0433\u043e\u0442\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u043c\u0438. \u041a\u043e\u043f\u0438\u0440\u0443\u0439, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0439, \u043c\u0435\u043d\u044f\u0439 \u043f\u043e\u0434 \u0441\u0435\u0431\u044f.<\/p>\n<h3>1. CLAUDE.md \u043d\u0430 30 \u0441\u0442\u0440\u043e\u043a \u0432\u043c\u0435\u0441\u0442\u043e 300<\/h3>\n<p><a href=\"https:\/\/code.claude.com\/docs\/en\/memory\" rel=\"noopener noreferrer nofollow\">CLAUDE.md<\/a>\u00a0&#8212; \u044d\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0439 &#171;\u043a\u043e\u043d\u0441\u0442\u0438\u0442\u0443\u0446\u0438\u044f&#187; \u0444\u0430\u0439\u043b. Claude \u0447\u0438\u0442\u0430\u0435\u0442 \u0435\u0433\u043e \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u0438 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u0435\u0433\u043e \u0432 \u0441\u0432\u0430\u043b\u043a\u0443: \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043d\u0430 200 \u0441\u0442\u0440\u043e\u043a, \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0441\u0442\u0438\u043b\u044f \u043d\u0430 100, \u043f\u043e\u0442\u043e\u043c &#171;\u0430 \u0435\u0449\u0451 \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 API \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0442\u0440\u0430\u043d\u043d\u043e&#187;. \u041a 500-\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 Claude \u0443\u0436\u0435 \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0430 \u0444\u043e\u043d\u043e\u0432\u043e \u0442\u0435\u0440\u043f\u0438\u0442.<\/p>\n<p>\u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Anthropic \u0443\u043a\u0430\u0437\u0430\u043d \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u00a0<strong>\u0434\u043e 200 \u0441\u0442\u0440\u043e\u043a<\/strong>. \u0418\u0437 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u044f \u0434\u0435\u0440\u0436\u0443 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b \u0435\u0449\u0451 \u0436\u0451\u0441\u0442\u0447\u0435 &#8212; \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 60. \u0418 \u0435\u0441\u0442\u044c \u0437\u043e\u043b\u043e\u0442\u043e\u0439 \u0442\u0435\u0441\u0442: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u043f\u0440\u043e\u0441\u0438 \u0441\u0435\u0431\u044f &#8212; &#171;\u0435\u0441\u043b\u0438 \u0443\u0431\u0440\u0430\u0442\u044c, Claude \u043d\u0430\u0447\u043d\u0451\u0442 \u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f?&#187;. \u041d\u0435\u0442 &#8212; \u0443\u0434\u0430\u043b\u044f\u0439.<\/p>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/923\/469\/de0\/923469de088ec5e41d8d4d3daac108a8.png\" width=\"1080\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/923\/469\/de0\/923469de088ec5e41d8d4d3daac108a8.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/923\/469\/de0\/923469de088ec5e41d8d4d3daac108a8.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>Claude \u0447\u0438\u0442\u0430\u0435\u0442 CLAUDE.md \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u043f\u0438\u0445\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0439 CLAUDE.md \u0442\u0432\u043e\u0438 \u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0438 &#8212; \u043e\u043d\u0438 \u0443\u0436\u0435 \u0432 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u043c. \u0418 \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434-\u043a\u043e\u043d\u0432\u0435\u043d\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0437\u044b\u043a \u0438 \u0442\u0430\u043a \u043d\u0430\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442.<\/p>\n<p>\u0412\u043e\u0442 \u043e\u0431\u0435\u0437\u043b\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u043e\u0433\u043e CLAUDE.md \u0441 \u043e\u0434\u043d\u043e\u0433\u043e voice\/agent \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041d\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0430 \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0441\u0435\u0441\u0441\u0438\u0439 \u043f\u043e\u0434\u0440\u044f\u0434:<\/p>\n<pre><code># Realtime Voice Agent## Stack- Orchestrator: Elixir\/Phoenix, OTP supervisors- Audio engine: Rust, PortAudio, Rubato resampling- Web UI: Flask + vanilla JS- AI: STT -&gt; LLM -&gt; TTS over WebSocket## Commands- Compile all: mix compile- Rust audio: cd native\/audio_engine &amp;&amp; cargo build --release- Web syntax: .venv\/bin\/python -m py_compile web\/*.py- Run locally: .\/run.sh## Architecture- Elixir owns orchestration and process lifecycle- Rust owns capture\/playback\/resampling, no business logic- Flask only exposes UI and session controls- Never put API keys, model names or devices inline## Gotchas- Log lines may start with \"[ISO timestamp] \". Strip before parsing- Streaming resampler must keep state between chunks- For per-phrase TTS, reset resampler per phrase- If audio breaks, add logs at every hop before changing code## Compact InstructionsWhen compacting, preserve: goal, changed files, failing command,current hypothesis, test results, next exact command.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043b\u0443\u0447\u0448\u0435? \u0422\u0443\u0442 \u043d\u0435\u0442 &#171;\u043f\u0438\u0448\u0438 \u0447\u0438\u0441\u0442\u044b\u0439 \u043a\u043e\u0434&#187; \u0438 &#171;\u0431\u0443\u0434\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u0435\u043d&#187;. \u0417\u0430\u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Claude \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u0443\u0433\u0430\u0434\u0430\u0435\u0442: \u043a\u0442\u043e \u0432\u043b\u0430\u0434\u0435\u0435\u0442 audio lifecycle, \u0433\u0434\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0438, \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c resampler \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0447\u0430\u043d\u043a\u0435, \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043b\u043e\u0439. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 CLAUDE.md.<\/p>\n<p>\u0412\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 &#8212; \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0434\u0435\u0442\u0430\u043b\u0438 API, \u043a\u043e\u043d\u0432\u0435\u043d\u0446\u0438\u0438 \u0442\u0435\u0441\u0442\u043e\u0432 &#8212; \u0436\u0438\u0432\u0451\u0442 \u0432\u00a0<code>.claude\/rules\/<\/code>\u00a0\u0441 path-specific \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u0444\u0430\u0439\u043b\u0435 frontmatter \u0441 glob-\u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u043c &#8212; \u0442\u0430\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 Claude \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 matching \u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043d\u0435 \u0437\u0430\u0441\u043e\u0440\u044f\u0435\u0442\u0441\u044f.<\/p>\n<pre><code>---paths:  - \"lib\/voice\/**\/*\"  - \"native\/audio_engine\/**\/*\"  - \"web\/**\/*\"---# Audio Pipeline Rules- Do not change STT, LLM and TTS providers in one patch- For latency bugs, log timestamps at capture, STT done, LLM first token,  TTS first byte, playback start- If changing WebSocket protocol, update browser parser in the same patch- Never swallow audio engine stderr; surface it in UI logs<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0411\u043e\u043d\u0443\u0441:\u00a0<code>@-\u0438\u043c\u043f\u043e\u0440\u0442<\/code>\u00a0\u043f\u0440\u044f\u043c\u043e \u0432 CLAUDE.md. \u041f\u0438\u0448\u0435\u0448\u044c\u00a0<code>See @README for project overview<\/code>\u00a0&#8212; Claude \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u0438\u0442 \u0444\u0430\u0439\u043b \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438. \u0420\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u043f\u0443\u0442\u0438, \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0434\u043e 5 \u0445\u043e\u043f\u043e\u0432.<\/p>\n<blockquote>\n<p><strong>\u041d\u0430\u0445\u043e\u0434\u043a\u0430.<\/strong>\u00a0\u0420\u0430\u0437\u0434\u0443\u0442\u044b\u0439 CLAUDE.md \u0445\u0443\u0436\u0435 \u0447\u0435\u043c \u0435\u0433\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435. Claude \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 &#8212; \u043e\u043d\u0438 \u0442\u043e\u043d\u0443\u0442 \u0432 \u0431\u043e\u043b\u0442\u043e\u0432\u043d\u0435. \u0417\u043e\u043b\u043e\u0442\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e:\u00a0<strong>\u0435\u0441\u043b\u0438 \u0443\u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443, Claude \u043d\u0430\u0447\u043d\u0451\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438? \u041d\u0435\u0442 &#8212; \u0443\u0434\u0430\u043b\u044f\u0439<\/strong>.<\/p>\n<\/blockquote>\n<h3>2. settings.json: \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433<\/h3>\n<p>\u041f\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u0443 Claude \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e bash-\u043a\u043e\u043c\u0430\u043d\u0434\u0443. \u042d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439, \u043f\u043e\u0442\u043e\u043c \u0431\u0435\u0441\u0438\u0442. \u041e\u0442\u0432\u0435\u0442 &#8212;\u00a0<code>.claude\/settings.json<\/code>\u00a0\u0441 \u044f\u0432\u043d\u044b\u043c\u0438 allow\/deny\/ask \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u0437\u00a0<a href=\"https:\/\/code.claude.com\/docs\/en\/permissions\" rel=\"noopener noreferrer nofollow\">permissions-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>:\u00a0<strong>deny \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0431\u0435\u0436\u0434\u0430\u0435\u0442 allow<\/strong>. \u041d\u0430 \u043a\u0430\u043a\u043e\u043c \u0431\u044b \u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u044b \u043d\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443 &#8212; \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0433\u0434\u0435 \u0443\u0433\u043e\u0434\u043d\u043e, \u043e\u043d\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0442\u044b \u043c\u043e\u0436\u0435\u0448\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c &#171;\u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0451&#187; \u0438 \u0442\u043e\u0447\u0435\u0447\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u043e\u0435.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eb6\/5d6\/849\/eb65d6849cb3ae3900e29307f8a4bca6.png\" width=\"1080\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/eb6\/5d6\/849\/eb65d6849cb3ae3900e29307f8a4bca6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/eb6\/5d6\/849\/eb65d6849cb3ae3900e29307f8a4bca6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<pre><code>{  \"$schema\": \"https:\/\/json.schemastore.org\/claude-code-settings.json\",  \"permissions\": {    \"allow\": [      \"Bash(git status)\",      \"Bash(git diff *)\",      \"Bash(git log *)\",      \"Bash(rg *)\",      \"Bash(find *)\",      \"Bash(mix compile)\",      \"Bash(cargo build *)\",      \"Bash(cargo test *)\",      \"Bash(.venv\/bin\/python -m py_compile *)\",      \"Read\"    ],    \"ask\": [      \"Bash(git push *)\",      \"Bash(git commit *)\",      \"Bash(git tag *)\",      \"Bash(.\/deploy.sh *)\",      \"Bash(.\/run.sh *)\",      \"Edit\",      \"Write\"    ],    \"deny\": [      \"Bash(curl *)\",      \"Bash(wget *)\",      \"Bash(rm -rf *)\",      \"Bash(git push --force *)\",      \"Bash(git push -f *)\",      \"Bash(sudo *)\",      \"Bash(chmod 777 *)\",      \"Bash(killall *)\",      \"Bash(pkill *)\",      \"Read(.\/.env)\",      \"Read(.\/.env.*)\",      \"Read(.\/secrets\/**)\",      \"Read(.\/.ssh\/**)\",      \"Read(.\/data\/*.sqlite)\",      \"Read(.\/data\/*.db)\"    ],    \"defaultMode\": \"acceptEdits\"  }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a? \u042f \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e \u0434\u0435\u0448\u0451\u0432\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438:\u00a0<code>rg<\/code>,\u00a0<code>git diff<\/code>, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e, \u0442\u0435\u0441\u0442\u044b. \u041d\u043e \u0432\u0441\u0451 \u0447\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043c\u0438\u0440 &#8212; push, deploy, \u0437\u0430\u043f\u0443\u0441\u043a \u0436\u0438\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, kill\/pkill, chmod &#8212; \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 ask \u0438\u043b\u0438 deny. \u0422\u0430\u043a Claude \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0435\u043a\u0440\u0435\u0442\u0430\u0440\u044f \u043f\u043e \u043a\u043b\u0438\u043a\u0430\u043c, \u043d\u043e \u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043a\u043d\u043e\u043f\u043a\u0443 &#171;\u0440\u0430\u0437\u043d\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u0434&#187;.<\/p>\n<p>Wildcards \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b, \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e.\u00a0<code>Bash(ls *)<\/code>\u00a0\u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u00a0<code>ls -la<\/code>\u00a0\u043d\u043e \u043d\u0435\u00a0<code>lsof<\/code>\u00a0&#8212; \u043d\u0435 \u0434\u0430\u0441\u0442 command injection \u0447\u0435\u0440\u0435\u0437 suffix-\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435. \u0410 \u0432\u043e\u0442\u00a0<code>Bash(ls*)<\/code>\u00a0\u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u0438\u00a0<code>lsof<\/code>\u00a0\u0442\u043e\u0436\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0439.<\/p>\n<p>Claude \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0430\u0432\u0442\u043e-\u043e\u0434\u043e\u0431\u0440\u0438\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432\u0440\u043e\u0434\u0435\u00a0<code>.gitconfig<\/code>,\u00a0<code>.bashrc<\/code>,\u00a0<code>.zshrc<\/code>,\u00a0<code>.mcp.json<\/code>,\u00a0<code>.claude.json<\/code>\u00a0&#8212; \u044d\u0442\u043e \u0432\u0448\u0438\u0442\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u0432\u043e\u0435\u0433\u043e allow-\u0441\u043f\u0438\u0441\u043a\u0430. \u0427\u0442\u0435\u043d\u0438\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0447\u0435\u0440\u0435\u0437\u00a0<code>permissions.deny<\/code>.<\/p>\n<h3>3. acceptEdits mode \u0432\u043c\u0435\u0441\u0442\u043e default (Shift+Tab)<\/h3>\n<p>\u0412 Claude Code \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e permission-\u0440\u0435\u0436\u0438\u043c\u043e\u0432. \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u0435 &#8212;\u00a0<code>Shift+Tab<\/code>\u00a0\u0446\u0438\u043a\u043b\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 default, acceptEdits \u0438 plan \u043f\u0440\u044f\u043c\u043e \u0432 \u0441\u0435\u0441\u0441\u0438\u0438.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043b\u0430\u0439\u0444\u0445\u0430\u043a: \u0436\u0438\u0442\u044c \u0432\u00a0<code>acceptEdits<\/code>. Claude \u043f\u0438\u0448\u0435\u0442, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442, Claude \u043f\u0438\u0448\u0435\u0442, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442. \u0422\u044b \u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u043c\u043e\u0442\u0440\u0438\u0448\u044c diff&#8217;\u044b \u0447\u0435\u0440\u0435\u0437 git. \u041a\u043e\u0433\u0434\u0430 \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u0434\u043e\u00a0<code>git push<\/code>\u00a0\u0438\u043b\u0438 bash-\u043a\u043e\u043c\u0430\u043d\u0434\u044b &#8212; \u0432\u0441\u0451 \u0435\u0449\u0451 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442. \u0427\u0430\u0441\u043e\u0432 \u0434\u0435\u0441\u044f\u0442\u044c-\u043f\u044f\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c \u0432 \u043c\u0435\u0441\u044f\u0446 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442, \u0435\u0441\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0448\u044c \u043f\u043b\u043e\u0442\u043d\u043e.<\/p>\n<p>\u041f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0435\u0444\u043e\u043b\u0442\u043e\u043c \u0432 settings.json:<\/p>\n<pre><code>{  \"permissions\": {    \"defaultMode\": \"acceptEdits\"  }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u044e &#8212; \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e \u0441\u0438\u0434\u0438\u0442\u0435 \u0432\u00a0<code>default<\/code>, \u043f\u0440\u0438\u0432\u044b\u043a\u0430\u0439\u0442\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e Claude \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c.<\/p>\n<h3>4. \u0425\u0443\u043a\u0438 \u043a\u0430\u043a guardrails: \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438, \u0430\u0432\u0442\u043e\u0444\u043e\u0440\u043c\u0430\u0442, \u043b\u043e\u0433\u0438<\/h3>\n<p><a href=\"https:\/\/code.claude.com\/docs\/en\/hooks\" rel=\"noopener noreferrer nofollow\">\u0425\u0443\u043a\u0438<\/a>\u00a0&#8212; \u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Claude Code \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445: \u043f\u0435\u0440\u0435\u0434 bash-\u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u043f\u043e\u0441\u043b\u0435 Edit, \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0435\u0441\u0441\u0438\u0438, \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0435\u0439 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e lifecycle. \u0422\u0438\u043f\u043e\u0432 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u044f\u0442\u044c: command (shell), http (POST \u043d\u0430 URL), mcp_tool, prompt (one-shot \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043c\u043e\u0434\u0435\u043b\u0438), agent (\u0441\u0443\u0431\u0430\u0433\u0435\u043d\u0442).<\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 &#8212;\u00a0<code>PreToolUse<\/code>\u00a0\u0438\u00a0<code>PostToolUse<\/code>. \u0422\u043e\u043b\u044c\u043a\u043e \u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0438\u0448\u0443 inline bash-\u043f\u0440\u043e\u0441\u0442\u044b\u043d\u0438 \u043f\u0440\u044f\u043c\u043e \u0432 JSON. \u0422\u0430\u043a \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u0435\u0431\u0430\u0436\u0438\u0442\u044c. \u0412 settings \u043b\u0435\u0436\u0438\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f, \u043b\u043e\u0433\u0438\u043a\u0430 \u043b\u0435\u0436\u0438\u0442 \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445.<\/p>\n<p><strong>\u041c\u043e\u0439 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440:<\/strong><\/p>\n<pre><code>{  \"hooks\": {    \"PreToolUse\": [      {        \"matcher\": \"Bash\",        \"hooks\": [{ \"type\": \"command\", \"command\": \".claude\/hooks\/block-danger.sh\" }]      }    ],    \"PostToolUse\": [      {        \"matcher\": \"Edit|Write\",        \"hooks\": [{ \"type\": \"command\", \"command\": \".claude\/hooks\/format-touched.sh\" }]      },      {        \"matcher\": \"Bash\",        \"hooks\": [{ \"type\": \"command\", \"command\": \".claude\/hooks\/log-command.sh\", \"async\": true }]      }    ]  }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>.claude\/hooks\/block-danger.sh<\/code>:<\/p>\n<pre><code>#!\/usr\/bin\/env bashset -euo pipefailINPUT=\"$(cat)\"CMD=\"$(printf '%s' \"$INPUT\" | jq -r '.tool_input.command \/\/ \"\"')\"if printf '%s' \"$CMD\" | grep -Eq 'rm[[:space:]]+-rf[[:space:]]+\/|git[[:space:]]+push[[:space:]]+(-f|--force)|sudo|chmod[[:space:]]+777|DROP[[:space:]]+TABLE|curl.*[|].*sh'; then  echo \"BLOCKED: dangerous command: $CMD\" &gt;&amp;2  exit 2fi<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>.claude\/hooks\/format-touched.sh<\/code>:<\/p>\n<pre><code>#!\/usr\/bin\/env bashset -euo pipefailFILE=\"$(jq -r '.tool_input.file_path \/\/ empty')\"[ -z \"$FILE\" ] &amp;&amp; exit 0[ ! -f \"$FILE\" ] &amp;&amp; exit 0case \"$FILE\" in  *.py) ruff format \"$FILE\" ;;  *.ts|*.tsx|*.js|*.jsx) npx prettier --write \"$FILE\" ;;  *.ex|*.exs) mix format \"$FILE\" ;;  *.rs) cargo fmt -- \"$FILE\" ;;esac<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>.claude\/hooks\/log-command.sh<\/code>:<\/p>\n<pre><code>#!\/usr\/bin\/env bashset -euo pipefailmkdir -p .claude\/logsjq -r '[now | todateiso8601, .tool_input.command] | @tsv' &gt;&gt; .claude\/logs\/commands.tsv<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>Exit code 2<\/code>\u00a0= \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430. stderr \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f Claude \u043a\u0430\u043a \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0430\u0437\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u043f\u043e\u0439\u0434\u0451\u0442 \u0443\u0436\u0435 \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u043f\u0443\u0442\u0438.\u00a0<code>async: true<\/code>\u00a0\u043d\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 workflow. \u041b\u043e\u0433 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 \u0444\u043e\u043d\u0435, Claude \u043d\u0435 \u0436\u0434\u0451\u0442.<\/p>\n<p>\u042d\u0442\u0438 \u0442\u0440\u0438 \u0444\u0430\u0439\u043b\u0430 \u0441\u043f\u0430\u0441\u0430\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0440\u0432\u043e\u0432, \u0447\u0435\u043c \u043b\u044e\u0431\u043e\u0439 &#171;\u0431\u0443\u0434\u044c \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u0435\u043d&#187; \u0432 CLAUDE.md. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0441\u0438\u0442. \u0425\u0443\u043a \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/026\/ad1\/e87\/026ad1e8786fd5a9efc8034685833233.png\" width=\"1080\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/026\/ad1\/e87\/026ad1e8786fd5a9efc8034685833233.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/026\/ad1\/e87\/026ad1e8786fd5a9efc8034685833233.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h3>5. &#171;\u0421\u043e\u0432\u0435\u0449\u0430\u043d\u0438\u0435 \u0431\u043e\u0442\u0438\u043a\u043e\u0432&#187;: Codex + Gemini \u043a\u0430\u043a \u0432\u0442\u043e\u0440\u043e\u0435 \u043c\u043d\u0435\u043d\u0438\u0435<\/h3>\n<p>\u041f\u0440\u043e \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u0451\u043c \u044f \u043a\u0440\u0430\u0442\u043a\u043e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u043b \u0432\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/1027090\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a>. \u0412\u043e\u0442 \u0434\u0435\u0442\u0430\u043b\u0438 \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442.<\/p>\n<p>Claude \u0437\u0430\u0441\u0442\u0440\u044f\u043b. \u0421\u0434\u0435\u043b\u0430\u043b \u0442\u0440\u0438 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0439\u0434\u0451\u0442 \u0432 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u044b\u0439 \u043a\u0440\u0443\u0433 \u0430\u0434\u0430. \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0435\u0449\u0451 \u0440\u0430\u0437 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c &#8212; \u0437\u043e\u0432\u0443 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438. GPT-5.4 \u0447\u0435\u0440\u0435\u0437\u00a0<a href=\"https:\/\/github.com\/openai\/codex\" rel=\"noopener noreferrer nofollow\">OpenAI Codex CLI<\/a>\u00a0\u0438 Gemini \u0447\u0435\u0440\u0435\u0437\u00a0<a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\" rel=\"noopener noreferrer nofollow\">Google Gemini CLI<\/a>. \u041e\u0431\u0430 \u0432\u0438\u0434\u0435\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u0443\u0441\u043a\u0438 \u043a\u043e\u0434\u0430 \u0438 \u043d\u0430\u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443. \u0423 \u043d\u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434.<\/p>\n<p>\u0412\u0430\u0436\u043d\u043e:\u00a0<strong>\u044d\u0442\u043e \u043d\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u0441\u0442\u0438\u043d\u044b, \u044d\u0442\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u0434\u0435\u0439<\/strong>. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 Claude \u0438 \u0437\u0430 \u043c\u043d\u043e\u0439. \u0414\u0432\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u043d\u043e\u0433\u0434\u0430 \u043b\u0430\u0436\u0430\u044e\u0442 \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435. \u041d\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0442\u0440\u0451\u0445 \u0447\u0430\u0441\u0442\u043e \u0432\u0438\u0434\u0438\u0442 \u0447\u0442\u043e-\u0442\u043e, \u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u0438\u0434\u044f\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1e7\/01c\/6cc\/1e701c6cc8e01297e43ee217954ab73a.png\" width=\"1080\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1e7\/01c\/6cc\/1e701c6cc8e01297e43ee217954ab73a.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1e7\/01c\/6cc\/1e701c6cc8e01297e43ee217954ab73a.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 custom slash-\u043a\u043e\u043c\u0430\u043d\u0434\u0443. \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0430\u0439\u043b\u00a0<code>.claude\/commands\/council.md<\/code>:<\/p>\n<pre><code>---description: Ask Codex and Gemini for a second opinionargument-hint: \"brief task description\"---Run the bot council script with the current task context:!bash .claude\/commands\/council.sh \"$ARGUMENTS\"Then read both outputs, compare approaches, and propose the final synthesis.Focus on what each model sees that the others miss.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418 \u0441\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u00a0<code>.claude\/commands\/council.sh<\/code>:<\/p>\n<pre><code>#!\/usr\/bin\/env bashset -euo pipefailQUESTION=\"$1\"CONTEXT_DIR=\"$(pwd)\"RECENT_GIT=\"$(git log --oneline -5 2&gt;\/dev\/null || echo 'no git history')\"CHANGED_FILES=\"$(git diff --name-only 2&gt;\/dev\/null || true)\"GIT_STATUS=\"$(git status --short 2&gt;\/dev\/null || true)\"TMPDIR=\"${TMPDIR:-\/tmp}\"OUTDIR=\"$TMPDIR\/council-$(date +%Y%m%d-%H%M%S)\"mkdir -p \"$OUTDIR\"# Prompts in English - external models perform better with EnglishPROMPT=\"Working directory: $CONTEXT_DIRRecent commits: $RECENT_GITChanged files:$CHANGED_FILESGit status:$GIT_STATUSTask: $QUESTIONGive a second opinion for a senior engineer.Return:1. Most likely root cause2. Files\/functions to inspect first3. Concrete fix plan4. One thing Claude may be missingBe direct. No disclaimers. No generic advice.\"# Run Codex and Gemini in parallelcodex exec \"$PROMPT\" &gt; \"$OUTDIR\/codex.out\" 2&gt;&amp;1 &amp;CODEX_PID=$!gemini -p \"$PROMPT\" &gt; \"$OUTDIR\/gemini.out\" 2&gt;&amp;1 &amp;GEMINI_PID=$!wait $CODEX_PID 2&gt;\/dev\/null || echo \"codex failed\" &gt; \"$OUTDIR\/codex.out\"wait $GEMINI_PID 2&gt;\/dev\/null || echo \"gemini failed\" &gt; \"$OUTDIR\/gemini.out\"echo \"===== CODEX (GPT-5.4) =====\"cat \"$OUTDIR\/codex.out\"echo \"\"echo \"===== GEMINI =====\"cat \"$OUTDIR\/gemini.out\"echo \"\"echo \"===== SAVED TO $OUTDIR =====\"echo \"===== END OF COUNCIL =====\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0441\u0435\u0441\u0441\u0438\u0438:\u00a0<code>\/council find why the WebSocket handler crashes every 30 seconds<\/code>. Claude \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0434\u0432\u0430 \u043c\u043d\u0435\u043d\u0438\u044f, \u0441\u0438\u043d\u0442\u0435\u0437\u0438\u0440\u0443\u0435\u0442.<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u044e\u0437\u043a\u0435\u0439\u0441\u00a0<strong>&#8212; fallback \u0434\u043b\u044f WebFetch<\/strong>. Claude Code \u0438\u043d\u043e\u0433\u0434\u0430 \u0443\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 auth \u0438\u043b\u0438 robots.txt. \u0422\u043e\u0433\u0434\u0430:<\/p>\n<pre><code>gemini -p \"Read https:\/\/example.com\/docs and return the key facts with source-relevant details.\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Gemini \u0434\u0451\u0440\u0433\u0430\u0435\u0442 URL \u0441\u0432\u043e\u0438\u043c \u043f\u0430\u0440\u0441\u0435\u0440\u043e\u043c, \u043e\u0442\u0434\u0430\u0451\u0442 \u0442\u0435\u043a\u0441\u0442. \u0423 \u043c\u0435\u043d\u044f \u044d\u0442\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u0441\u043f\u0430\u0441\u0430\u043b\u043e, \u043a\u043e\u0433\u0434\u0430 WebFetch \u0443\u043f\u0438\u0440\u0430\u043b\u0441\u044f \u0432 auth, robots.txt \u0438\u043b\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u0443\u044e \u0432\u0451\u0440\u0441\u0442\u043a\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438.<\/p>\n<blockquote>\n<p><strong>\u041d\u0430\u0445\u043e\u0434\u043a\u0430.<\/strong>\u00a0\u041e\u0434\u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u0441\u0430\u043c\u0430 \u0436\u0435 \u043d\u0430 \u043d\u0435\u0433\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442. \u0414\u0440\u0443\u0433\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0442 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043d\u043e\u0432\u0443\u044e \u0441\u0435\u0440\u0438\u044e \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0438 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0442\u0440\u0451\u0445 \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u043a\u0443 \u0431\u044b \u043d\u0435 \u0434\u043e\u0448\u043b\u0430. \u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a brainstorm, \u0430 \u043d\u0435 \u043a\u0430\u043a ensemble.<\/p>\n<\/blockquote>\n<h3>6. \/effort xhigh, max \u0438 adaptive reasoning<\/h3>\n<p><a href=\"https:\/\/code.claude.com\/docs\/en\/model-config\" rel=\"noopener noreferrer nofollow\">\/effort<\/a>\u00a0&#8212; \u044d\u0442\u043e \u0440\u0443\u0447\u043a\u0430 \u0433\u043b\u0443\u0431\u0438\u043d\u044b \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f. \u0427\u0435\u043c \u0432\u044b\u0448\u0435 \u0443\u0440\u043e\u0432\u0435\u043d\u044c, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 Claude \u0433\u043e\u0442\u043e\u0432 \u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0430\u0434 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0438 \u0442\u0435\u043c \u0434\u043e\u0440\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u044f. \u0412\u0430\u0436\u043d\u043e:\u00a0<code>max<\/code>\u00a0\u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0440\u0435\u0436\u0438\u043c &#171;\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0438 \u0437\u0430\u0431\u044b\u043b&#187;. \u042d\u0442\u043e \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0434\u043e\u0440\u043e\u0433\u0430\u044f \u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u0435\u0449\u0451 \u0434\u043e\u0440\u043e\u0436\u0435.<\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u0448\u043a\u0430\u043b\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u0430 Opus 4.7 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u00a0<code>low<\/code>,\u00a0<code>medium<\/code>,\u00a0<code>high<\/code>,\u00a0<code>xhigh<\/code>,\u00a0<code>max<\/code>. \u041d\u0430 Opus 4.6 \u0438 Sonnet 4.6 \u043d\u0435\u0442\u00a0<code>xhigh<\/code>, \u0442\u0430\u043c \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f\u00a0<code>low<\/code>,\u00a0<code>medium<\/code>,\u00a0<code>high<\/code>,\u00a0<code>max<\/code>. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442, Claude \u043e\u0442\u043a\u0430\u0442\u0438\u0442\u0441\u044f \u043a \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u043c\u0443 \u043d\u0438\u0436\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0<code>xhigh<\/code>\u00a0\u043d\u0430 Opus 4.6 \u0441\u0442\u0430\u043d\u0435\u0442\u00a0<code>high<\/code>.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043b\u0443\u0447\u0448\u0435 \u043d\u0435 \u043a\u0430\u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0442\u043e\u0447\u043d\u044b\u0445 \u0442\u043e\u043a\u0435\u043d-\u0431\u044e\u0434\u0436\u0435\u0442\u043e\u0432, \u0430 \u043a\u0430\u043a \u0440\u0435\u0436\u0438\u043c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f.\u00a0<code>xhigh<\/code>\u00a0&#8212; \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0435\u0444\u043e\u043b\u0442 \u0434\u043b\u044f Opus 4.7.\u00a0<code>max<\/code>\u00a0&#8212; \u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u0444\u043e\u0440\u0441\u0430\u0436 \u0431\u0435\u0437 \u0436\u0451\u0441\u0442\u043a\u043e\u0433\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u0435\u043b\u044f \u043f\u043e \u0440\u0430\u0441\u0445\u043e\u0434\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e \u044f \u0431\u044b \u0435\u0433\u043e \u043d\u0435 \u0441\u0442\u0430\u0432\u0438\u043b.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/660\/2f4\/6af\/6602f46affbcd99d5ed6f3c0ae9b9c44.png\" width=\"1080\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/660\/2f4\/6af\/6602f46affbcd99d5ed6f3c0ae9b9c44.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/660\/2f4\/6af\/6602f46affbcd99d5ed6f3c0ae9b9c44.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041c\u043e\u0451 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e:\u00a0<code>low<\/code>\/<code>medium<\/code>\u00a0\u0434\u043b\u044f \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0439 \u0440\u0443\u0442\u0438\u043d\u044b,\u00a0<code>high<\/code>\u00a0\u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0438\u043d\u0433\u0430,\u00a0<code>xhigh<\/code>\u00a0\u0434\u043b\u044f Opus 4.7 \u043d\u0430 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u043c \u0434\u0435\u0431\u0430\u0433\u0435,\u00a0<code>max<\/code>\u00a0\u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043e\u0432\u043e, \u043a\u043e\u0433\u0434\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0443\u043f\u0451\u0440\u0441\u044f.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0443\u0447\u043a\u0430 &#8212;\u00a0<code>CLAUDE_CODE_EFFORT_LEVEL<\/code>\u00a0\u0438\u043b\u0438\u00a0<code>effortLevel<\/code>\u00a0\u0432 settings:<\/p>\n<pre><code>export CLAUDE_CODE_EFFORT_LEVEL=high<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>MAX_THINKING_TOKENS<\/code>\u00a0&#8212; \u0441\u0442\u0430\u0440\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f fixed thinking budget. \u041f\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, Opus 4.7 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 adaptive reasoning, \u0438 fixed-budget \u0440\u0435\u0436\u0438\u043c \u043a \u043d\u0435\u043c\u0443 \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f. \u041d\u0430 Opus 4.6 \u0438 Sonnet 4.6 \u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0439 fixed-budget \u0440\u0435\u0436\u0438\u043c \u0447\u0435\u0440\u0435\u0437\u00a0<code>CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1<\/code>, \u0438 \u0443\u0436\u0435 \u0442\u0430\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c\u00a0<code>MAX_THINKING_TOKENS<\/code>. \u0414\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u044f \u0431\u044b \u044d\u0442\u043e \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u043b.<\/p>\n<p>\u0421\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u044f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/1027090\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a>, \u043d\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e. \u0415\u0441\u043b\u0438 \u0442\u044b \u0434\u0435\u043b\u0430\u0435\u0448\u044c\u00a0<code>ls<\/code>\u00a0\u0438\u00a0<code>grep<\/code>\u00a0\u043d\u0430 Opus \u0441 \u0432\u044b\u0441\u043e\u043a\u0438\u043c effort &#8212; \u0442\u044b \u043f\u043b\u0430\u0442\u0438\u0448\u044c \u0437\u0430 \u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0435 \u0442\u0430\u043c, \u0433\u0434\u0435 \u043d\u0443\u0436\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u043f\u043e \u0444\u0430\u0439\u043b\u0430\u043c. \u0414\u0435\u043d\u044c\u0433\u0438 \u0443\u043b\u0435\u0442\u0430\u044e\u0442 \u043d\u0435 \u0434\u0440\u0430\u043c\u0430\u0442\u0438\u0447\u043d\u043e \u0437\u0430 \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432, \u0430 \u0442\u0443\u043f\u043e \u043a\u0430\u043f\u0430\u044e\u0442 \u0432\u0435\u0441\u044c \u0434\u0435\u043d\u044c.<\/p>\n<h3>7. Context Rot: \u043f\u043e\u0447\u0435\u043c\u0443 Claude \u0442\u0443\u043f\u0435\u0435\u0442 \u043a \u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435 \u0441\u0435\u0441\u0441\u0438\u0438<\/h3>\n<p>\u042d\u0442\u043e \u043d\u0435 \u0441\u0443\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u043e\u0449\u0443\u0449\u0435\u043d\u0438\u0435. \u0418\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435\u00a0<a href=\"https:\/\/arxiv.org\/abs\/2307.03172\" rel=\"noopener noreferrer nofollow\">Stanford &#171;Lost in the Middle&#187;<\/a>\u00a0\u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u00a0<strong>\u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 15-47%<\/strong>\u00a0\u043f\u0440\u0438 \u0434\u043b\u0438\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435. \u0414\u0430\u0436\u0435 \u043d\u0430 \u043c\u043e\u0434\u0435\u043b\u044f\u0445 \u0441 1M \u043e\u043a\u043d\u043e\u043c &#8212; \u0434\u043b\u0438\u043d\u0430 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u0432\u0440\u0435\u0434\u0438\u0442 reasoning. \u042f\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u00a0<em>context rot<\/em>.<\/p>\n<p>\u0421\u0438\u043c\u043f\u0442\u043e\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043d\u043e\u0433\u0438\u0435 \u0441\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 &#171;\u043d\u0443, AI \u0436\u0435&#187;:<\/p>\n<ul>\n<li>\n<p>Claude \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0443\u0436\u0435 \u0434\u0435\u043b\u0430\u043b \u0432 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0441\u0435\u0441\u0441\u0438\u0438<\/p>\n<\/li>\n<li>\n<p>\u0415\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0430\u0442 \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043d\u0430\u0437\u0430\u0434<\/p>\n<\/li>\n<li>\n<p>Multi-step \u0437\u0430\u0434\u0430\u0447\u0430 \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435<\/p>\n<\/li>\n<li>\n<p>Claude \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u043e\u043f\u0440\u043e\u0441, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u044b \u0443\u0436\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u043b<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u0434 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043c\u0435\u043d\u0435\u0435 \u0442\u043e\u0447\u043d\u044b\u043c, \u0445\u043e\u0442\u044f \u043f\u0440\u043e\u043c\u043f\u0442 \u043d\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 &#8212; \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u00a0<code>\/context<\/code>. \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u043d\u0442. \u0414\u0430\u043b\u044c\u0448\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435: \u0434\u043e 50% \u0440\u0430\u0431\u043e\u0442\u0430\u0439, \u043d\u0430 60-65% \u0434\u0435\u043b\u0430\u0439 \u0440\u0443\u0447\u043d\u043e\u0439\u00a0<code>\/compact<\/code>, \u043f\u043e\u0441\u043b\u0435 75% \u0443\u0436\u0435 \u043d\u0435 \u0433\u0435\u0440\u043e\u0439\u0441\u0442\u0432\u0443\u0439. \u0422\u0430\u043c \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0435\u0445\u0430\u0442\u044c.<\/p>\n<p>\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0436\u0434\u0443\u0442 \u0434\u043e \u0437\u043e\u043d\u044b auto-compaction \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0441\u0436\u0430\u0442\u0438\u0435 \u043d\u0438\u0437\u043a\u043e\u0433\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430. \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e &#8212;\u00a0<code>\/compact<\/code>\u00a0\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 60-65% \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0441 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c:<\/p>\n<pre><code>\/compact preserve the handoff strictly in this format:Goal: one line describing the current task.Changed files: path -&gt; what changed.Decisions: options rejected and why.Current failure: command, full error summary, hypothesis.Verification: commands already run and their results.Next step: one next command or one next file to inspect.Remove: style chatter, failed prompt drafts, generic reasoning.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0430\u043a \u0442\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u0443\u0435\u0448\u044c \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u0441\u0436\u0430\u0442\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435. Auto-compaction \u0440\u0435\u0448\u0438\u0442 \u0437\u0430 \u0442\u0435\u0431\u044f \u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c \u0432\u0430\u0436\u043d\u043e\u0435.<\/p>\n<h3>8. \u041f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u0432\u0443\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0439: \u043a\u043e\u0433\u0434\u0430 \/clear, \u0430 \u043d\u0435 \/compact<\/h3>\n<p>\u041f\u0440\u044f\u043c\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u043f\u0443\u043d\u043a\u0442\u043e\u043c \u0448\u0442\u0443\u043a\u0430, \u043d\u043e \u043f\u0440\u043e \u0434\u0440\u0443\u0433\u043e\u0435.<\/p>\n<p>Claude \u0441\u0434\u0435\u043b\u0430\u043b \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u0422\u044b \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043b, \u043e\u043d \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043b, \u043d\u043e \u043f\u043b\u043e\u0445\u043e. \u0422\u044b \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043b \u0435\u0449\u0451 \u0440\u0430\u0437, \u0441\u0442\u0430\u043b\u043e \u0445\u0443\u0436\u0435. \u042d\u0442\u043e &#8212;\u00a0<strong>\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u0432\u0443\u0445 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0439<\/strong>: \u0435\u0441\u043b\u0438 \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0434\u0432\u0430\u0436\u0434\u044b \u0438 \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e, \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0437\u0430\u0441\u043e\u0440\u0451\u043d \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u043c\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u043c\u0438.\u00a0<code>\/compact<\/code>\u00a0\u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u0447\u0438\u043d\u0438\u0442 &#8212; \u043e\u043d \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442 \u044d\u0442\u0438 \u0436\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b \u0432 \u0441\u0436\u0430\u0442\u043e\u043c \u0432\u0438\u0434\u0435.<\/p>\n<p>\u041d\u043e \u043f\u0435\u0440\u0435\u0434\u00a0<code>\/clear<\/code>\u00a0\u044f \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0435\u043b\u0430\u044e \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0448\u0430\u0433: \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0430 &#171;\u0441\u043e\u0432\u0435\u0449\u0430\u043d\u0438\u0435 \u0431\u043e\u0442\u0438\u043a\u043e\u0432&#187; \u0438\u0437 \u043f\u0443\u043d\u043a\u0442\u0430 5. Codex \u0438 Gemini \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043f\u043e\u0434 \u0434\u0440\u0443\u0433\u0438\u043c \u0443\u0433\u043b\u043e\u043c, \u0438 \u0432 \u043c\u043e\u0438\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 90% \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0434\u0430\u0451\u0442 \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0443, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439\u00a0<code>\/clear<\/code>\u00a0\u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d. \u0415\u0441\u043b\u0438 \u0438 council \u043d\u0435 \u043f\u043e\u043c\u043e\u0433 &#8212; \u0442\u043e\u0433\u0434\u0430 \u0434\u0430, \u0447\u0438\u0441\u0442\u0438\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442.<\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e &#8212;\u00a0<code>\/clear<\/code>\u00a0\u0438 \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442. \u0421 \u043e\u0434\u043d\u043e\u0439 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u0435\u0439: \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u043c\u043f\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043b\u0443\u0447\u0448\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e. \u041d\u0435 \u043a\u043e\u043f\u0438\u044f. \u0414\u043e\u0431\u0430\u0432\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u0438\u043a\u0438, \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432, \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.<\/p>\n<p>\u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439:<\/p>\n<ol>\n<li>\n<p>Prompt: &#171;Implement function X&#187;<\/p>\n<\/li>\n<li>\n<p>Claude: \u0434\u0435\u043b\u0430\u0435\u0442 Y<\/p>\n<\/li>\n<li>\n<p>\u0422\u044b: &#171;\u043d\u0435\u0442, \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c Z&#187;<\/p>\n<\/li>\n<li>\n<p>Claude: \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f Z, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f Z-\u043a\u0440\u0438\u0432\u043e\u0435<\/p>\n<\/li>\n<li>\n<p>\u0422\u044b: \u0435\u0449\u0451 \u0440\u0430\u0437 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0448\u044c \u043f\u0440\u043e Z<\/p>\n<\/li>\n<li>\n<p>Claude: \u0434\u0435\u043b\u0430\u0435\u0442 W \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e\u0442\u043a\u0443\u0434\u0430<\/p>\n<\/li>\n<li>\n<p><strong>STOP.<\/strong>\u00a0\u0421\u043d\u0430\u0447\u0430\u043b\u0430\u00a0<code>\/council<\/code>. \u0415\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e &#8212;\u00a0<code>\/clear<\/code><\/p>\n<\/li>\n<li>\n<p>New prompt: &#171;Implement function X. It must do Z. Test case: input A -&gt; output B. Run the test after implementation.&#187;<\/p>\n<\/li>\n<\/ol>\n<p>\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u043d\u0430 \u0448\u0430\u0433\u0435 8 &#8212; \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f. Claude 4.x \u0441\u0442\u0430\u043b \u043e\u0447\u0435\u043d\u044c \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u044b\u043c. \u0415\u0441\u043b\u0438 \u0434\u0430\u0442\u044c \u0435\u043c\u0443 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443 (\u0442\u0435\u0441\u0442, \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442, validator), \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0447\u043d\u0435\u0435 \u0432 \u0440\u0430\u0437\u044b.<\/p>\n<blockquote>\n<p><strong>\u041d\u0430\u0445\u043e\u0434\u043a\u0430.<\/strong>\u00a0&#171;\u0414\u0430\u0439 Claude \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u0432\u043e\u044e \u0440\u0430\u0431\u043e\u0442\u0443&#187; &#8212; \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0441\u0430\u043c\u0430\u044f \u043c\u043e\u0449\u043d\u0430\u044f \u0432\u0435\u0449\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u043c\u043f\u0442\u0435. \u0412\u0430\u0436\u043d\u0435\u0435 \u043b\u044e\u0431\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043f\u043e \u0441\u0442\u0438\u043b\u044e, \u0447\u0435\u043c \u043b\u044e\u0431\u044b\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432.\u00a0<strong>\u0412\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f &gt; \u0443\u0433\u043e\u0432\u043e\u0440\u044b<\/strong>.<\/p>\n<\/blockquote>\n<h3>9. Sandbox mode: \u043c\u0438\u043d\u0443\u0441 84% permission-\u043f\u0440\u043e\u043c\u043f\u0442\u043e\u0432<\/h3>\n<p>Sandbox \u044d\u0442\u043e \u043d\u0435 \u0440\u0435\u0436\u0438\u043c auto-approve. \u042d\u0442\u043e \u0444\u0438\u043b\u044c\u0442\u0440 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u041e\u0421, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0447\u0442\u043e Claude \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c &#8212; \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u043d \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f. macOS \u0447\u0435\u0440\u0435\u0437 Seatbelt, Linux \u0447\u0435\u0440\u0435\u0437 bubblewrap, \u043d\u0430 WSL2 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. WSL1 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0418\u0434\u0435\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f: \u0435\u0441\u043b\u0438 \u0443 Claude \u043d\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0447\u0442\u043e-\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u0442\u044c, \u043d\u0435\u0437\u0430\u0447\u0435\u043c \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432 \u044d\u0442\u043e\u0439 \u0437\u043e\u043d\u0435. \u041f\u043e\u00a0<a href=\"https:\/\/www.anthropic.com\/engineering\/claude-code-sandboxing\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435 Anthropic<\/a>, \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 sandbox\u00a0<strong>\u0441\u043d\u0438\u0436\u0430\u0435\u0442 permission-\u043f\u0440\u043e\u043c\u043f\u0442\u044b \u043d\u0430 84%<\/strong>.<\/p>\n<pre><code>{  \"sandbox\": {    \"enabled\": true,    \"filesystem\": {      \"allowWrite\": [\".\/src\", \".\/tests\", \"\/tmp\/build\"],      \"denyWrite\": [\"\/etc\", \"\/usr\/local\/bin\", \"~\/.ssh\"],      \"denyRead\": [\"~\/.aws\/credentials\", \"~\/.kube\/config\"],      \"allowRead\": [\".\"]    },    \"network\": {      \"allowedDomains\": [\"github.com\", \"*.npmjs.org\", \"pypi.org\"],      \"allowUnixSockets\": [\"\/var\/run\/docker.sock\"],      \"allowLocalBinding\": true    }  }}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421 \u0442\u0430\u043a\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u043c Claude \u043c\u043e\u0436\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e, \u043d\u043e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0437\u0430\u043b\u0435\u0437\u0435\u0442 \u0432\u00a0<code>\/etc<\/code>, \u043d\u0435 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0435\u0442 AWS-\u043a\u0440\u0435\u0434\u044b \u0438 \u043d\u0435 \u0434\u0451\u0440\u043d\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u043c\u0435\u043d. \u0421\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 safe-\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<p>\u041a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u00a0<code>acceptEdits<\/code>\u00a0\u0440\u0435\u0436\u0438\u043c\u043e\u043c.\u00a0<code>acceptEdits<\/code>\u00a0\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043a\u043b\u0438\u043a\u0438 \u043d\u0430 Edit\/Write, sandbox \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u043d\u0430 \u0432\u0441\u0451\u043c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c.<\/p>\n<h3>10. .claude\/skills\/ \u0434\u043b\u044f lazy-loading \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439<\/h3>\n<p>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 &#8212; \u043f\u0440\u043e \u0442\u043e, \u043a\u0443\u0434\u0430 \u0434\u0435\u0432\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0432\u043b\u0435\u0437\u043b\u0438 \u0432 \u0442\u043e\u0449\u0438\u0439 CLAUDE.md. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443 Claude Code \u0435\u0441\u0442\u044c\u00a0<a href=\"https:\/\/code.claude.com\/docs\/en\/skills\" rel=\"noopener noreferrer nofollow\">skills<\/a>.<\/p>\n<p>Skills &#8212; \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f\u00a0<strong>\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435<\/strong>. \u041b\u0435\u0436\u0430\u0442 \u0432\u00a0<code>.claude\/skills\/<\/code>, \u043a\u0430\u0436\u0434\u0430\u044f \u0432 \u0441\u0432\u043e\u0435\u0439 \u043f\u0430\u043f\u043a\u0435 \u0441 \u0444\u0430\u0439\u043b\u043e\u043c\u00a0<code>SKILL.md<\/code>. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430:<\/p>\n<pre><code>.claude\/  CLAUDE.md              # 40 \u0441\u0442\u0440\u043e\u043a \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b  skills\/    debug-audio\/      SKILL.md           # STT -&gt; LLM -&gt; TTS latency\/debug    release-check\/      SKILL.md           # \u041f\u0435\u0440\u0435\u0434 \u0440\u0435\u043b\u0438\u0437\u043e\u043c: \u0442\u0435\u0441\u0442\u044b, env, changelog    article-publish\/      SKILL.md           # \u0425\u0430\u0431\u0440\/VC.ru\/Medium workflow    incident-postmortem\/      SKILL.md           # \u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u043f\u043e \u043b\u043e\u0433\u0430\u043c \u0438 git diff<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b54\/089\/766\/b540897662248399667d9f2020706745.png\" width=\"1080\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b54\/089\/766\/b540897662248399667d9f2020706745.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b54\/089\/766\/b540897662248399667d9f2020706745.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>SKILL.md \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 markdown, \u043d\u043e \u0441 frontmatter:<\/p>\n<pre><code>---name: debug-audiodescription: Debug real-time voice latency, dropped chunks or broken playback---# Voice Pipeline Debug PlaybookBefore any fix patch:1. Locate the failing boundary: capture, STT, LLM, TTS, playback.2. Add timestamp logs at the input and output of each stage.3. Do not change more than one provider or protocol per patch.4. If touching resampling, verify streaming state is preserved.5. Finish with a before\/after latency table.<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Claude \u0432\u0438\u0434\u0438\u0442 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 skills \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0435\u0441\u0441\u0438\u0438, \u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u0442\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u0448\u044c \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e \u0430\u0443\u0434\u0438\u043e-\u0434\u0435\u0431\u0430\u0433, \u0440\u0435\u043b\u0438\u0437, \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044e \u0441\u0442\u0430\u0442\u044c\u0438 \u0438\u043b\u0438 \u043f\u043e\u0441\u0442\u043c\u043e\u0440\u0442\u0435\u043c. \u041f\u043e \u043c\u043e\u0438\u043c \u0437\u0430\u043c\u0435\u0440\u0430\u043c \u0432 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u044d\u0442\u043e \u0434\u0430\u0432\u0430\u043b\u043e\u00a0<strong>\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044e \u0434\u043e 150 000 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0437\u0430 \u0441\u0435\u0441\u0441\u0438\u044e<\/strong>, \u043a\u043e\u0433\u0434\u0430 \u0440\u0430\u043d\u044c\u0448\u0435 200+ \u0441\u0442\u0440\u043e\u043a \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0439 \u043b\u0435\u0436\u0430\u043b\u0438 \u043f\u0440\u044f\u043c\u043e \u0432 CLAUDE.md.<\/p>\n<p>\u0423 \u043c\u0435\u043d\u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 8 skills \u043f\u043e 30-50 \u0441\u0442\u0440\u043e\u043a \u043a\u0430\u0436\u0434\u044b\u0439. \u0415\u0441\u043b\u0438 \u0431\u044b \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0432 CLAUDE.md &#8212; \u0444\u0430\u0439\u043b \u0431\u044b \u0432\u044b\u0440\u043e\u0441 \u0434\u043e 400 \u0441\u0442\u0440\u043e\u043a \u0438 Claude \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0431\u044b \u0435\u0433\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c. \u0427\u0435\u0440\u0435\u0437 skills &#8212; \u043a\u0430\u0436\u0434\u0430\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u0430.<\/p>\n<h3>\u0427\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435<\/h3>\n<p>\u0414\u0435\u0441\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043d\u0430\u043a\u043e\u043f\u0438\u043b \u0437\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Claude Code. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0437\u0430 \u043f\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442, \u044d\u0444\u0444\u0435\u043a\u0442 \u0443 \u043c\u0435\u043d\u044f \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0434\u0435\u043b\u044f\u043c\u0438 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u0432 \u043c\u0435\u0441\u044f\u0446. \u0421\u0443\u043c\u043c\u0430\u0440\u043d\u043e \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043c\u0435\u0436\u0434\u0443 &#171;Claude \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434&#187; \u0438 &#171;Claude \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0440\u0443\u0442\u0438\u043d\u0443, \u0430 \u044f \u0434\u0443\u043c\u0430\u044e \u043d\u0430\u0434 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439&#187;.<\/p>\n<p>\u041f\u0440\u043e\u0439\u0434\u0438\u0441\u044c \u043f\u043e \u0441\u043f\u0438\u0441\u043a\u0443 \u0435\u0449\u0451 \u0440\u0430\u0437. \u0412\u044b\u0431\u0435\u0440\u0438 \u0434\u0432\u0430-\u0442\u0440\u0438 \u043f\u0443\u043d\u043a\u0442\u0430 \u0438 \u0432\u043d\u0435\u0434\u0440\u0438 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043d\u0435 \u043d\u0430 \u0438\u0433\u0440\u0443\u0448\u0435\u0447\u043d\u043e\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438. \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u0438\u0434\u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043d\u0430\u0441 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0447\u0442\u043e\u00a0<strong>\u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0441\u0442\u0430\u043b \u0443\u0437\u043a\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/strong>.<\/p>\n<blockquote>\n<p><strong>\u0412 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0447\u0430\u0441\u0442\u0438<\/strong>\u00a0&#8212; 10 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 \u043f\u0440\u0438\u0451\u043c\u043e\u0432. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0443\u0431\u0430\u0433\u0435\u043d\u0442\u044b \u0432\u00a0<code>.claude\/agents\/<\/code>. \u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 git worktrees \u0431\u0435\u0437 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432. Claude Code \u0432 CI\/CD (headless mode, GitHub Actions, Agent SDK). TDD \u043d\u0430 \u0430\u0432\u0442\u043e\u043f\u0438\u043b\u043e\u0442\u0435. \u0422\u0435\u0445\u043d\u0438\u043a\u0430 Ralph &#8212; \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0439 \u0446\u0438\u043a\u043b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b \u0446\u0435\u043b\u044b\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430 \u0442\u0440\u0438 \u043c\u0435\u0441\u044f\u0446\u0430. \u0418 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e \u0442\u043e, \u043a\u0443\u0434\u0430 \u0432\u0441\u0451 \u044d\u0442\u043e \u0438\u0434\u0451\u0442 \u0432 2027.<\/p>\n<\/blockquote>\n<hr\/>\n<p><strong>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438:<\/strong>\u00a0<a href=\"https:\/\/habr.com\/ru\/articles\/1027090\/\" rel=\"noopener noreferrer nofollow\">Claude Code &#8212; \u0447\u0430\u0441\u0442\u044c 1<\/a>\u00a0\u00b7\u00a0<a href=\"https:\/\/code.claude.com\/docs\/en\/memory\" rel=\"noopener noreferrer nofollow\">Memory Management (CLAUDE.md)<\/a>\u00a0\u00b7\u00a0<a href=\"https:\/\/code.claude.com\/docs\/en\/permissions\" rel=\"noopener noreferrer nofollow\">Permissions<\/a>\u00a0\u00b7\u00a0<a href=\"https:\/\/code.claude.com\/docs\/en\/hooks\" rel=\"noopener noreferrer nofollow\">Hooks Reference<\/a>\u00a0\u00b7\u00a0<a href=\"https:\/\/code.claude.com\/docs\/en\/skills\" rel=\"noopener noreferrer nofollow\">Skills Documentation<\/a>\u00a0\u00b7\u00a0<a href=\"https:\/\/code.claude.com\/docs\/en\/model-config\" rel=\"noopener noreferrer nofollow\">Model Configuration \/ Effort<\/a>\u00a0\u00b7\u00a0<a href=\"https:\/\/www.anthropic.com\/engineering\/claude-code-sandboxing\" rel=\"noopener noreferrer nofollow\">Anthropic Sandboxing Engineering<\/a>\u00a0\u00b7\u00a0<a href=\"https:\/\/arxiv.org\/abs\/2307.03172\" rel=\"noopener noreferrer nofollow\">Lost in the Middle (Stanford)<\/a>\u00a0\u00b7\u00a0<a href=\"https:\/\/github.com\/openai\/codex\" rel=\"noopener noreferrer nofollow\">OpenAI Codex CLI<\/a>\u00a0\u00b7\u00a0<a href=\"https:\/\/github.com\/google-gemini\/gemini-cli\" rel=\"noopener noreferrer nofollow\">Google Gemini CLI<\/a><\/p>\n<p><strong>\u041e\u0431 \u0430\u0432\u0442\u043e\u0440\u0435:<\/strong>\u00a0\u041a\u0438\u0440, CTO \u0438 \u0441\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c. \u041f\u0438\u0448\u0443 \u043f\u0440\u043e AI-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0432 \u0431\u0438\u0437\u043d\u0435\u0441\u0435 \u0431\u0435\u0437 \u0431\u0443\u043b\u0448\u0438\u0442\u0430:\u00a0<a href=\"https:\/\/t.me\/ai_integr\" rel=\"noopener noreferrer nofollow\">@ai_integr<\/a><\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1028988\/\">https:\/\/habr.com\/ru\/articles\/1028988\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0420\u0430\u043d\u0435\u0435 \u044f \u043f\u0438\u0441\u0430\u043b\u00a0\u043f\u0440\u043e \u0443\u0442\u0435\u0447\u043a\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 Claude Code. 512 000 \u0441\u0442\u0440\u043e\u043a, KAIROS, \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043d\u0435\u0440\u0435\u043b\u0438\u0437\u043d\u0443\u0442\u044b\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 Opus 4.7 \u0438 Sonnet 4.8. \u0422\u0430\u043a \u0432\u043e\u0442. \u0412 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c Claude Code \u0443\u0436\u0435 \u0435\u0441\u0442\u044c\u00a0Opus 4.7. \u0420\u043e\u0432\u043d\u043e \u043a\u0430\u043a \u0438 \u0431\u044b\u043b\u043e \u0432 leaked-\u043a\u043e\u0434\u0435. \u0412\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0435\u0439 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c\u00a0\/effort xhigh\u00a0&#8212; \u044d\u0442\u043e \u043c\u044b \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0442\u043e\u0436\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c.\u0412\u00a0\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438\u00a0\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0447\u0442\u043e Claude Code \u0443\u043c\u0435\u0435\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u0422\u0438\u043f\u043e\u0432\u043e\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e: &#171;\u043f\u043e\u043d\u044f\u043b, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b, \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c&#187;. \u0418 \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u043e\u0442 \u0436\u0435 \u043f\u043e\u0442\u043e\u043b\u043e\u043a \u0447\u0442\u043e \u0443 \u0432\u0441\u0435\u0445 &#8212; Claude \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e, \u043d\u043e \u043a\u0430\u043a-\u0442\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e. \u041e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u043a \u043a\u043e\u043d\u0446\u0443 \u0441\u0435\u0441\u0441\u0438\u0438, \u043f\u0440\u043e\u0441\u0438\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u0438\u0445, \u0436\u0440\u0451\u0442 \u0442\u043e\u043a\u0435\u043d\u044b \u043a\u0430\u043a \u043d\u0435 \u0432 \u0441\u0435\u0431\u044f.\u042d\u0442\u043e \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438. \u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c\u0438. \u041a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0435\u0436\u0430\u0442 \u0432 \u0434\u0432\u0443\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 \u0438 \u043d\u0438\u043a\u0442\u043e \u0434\u043e \u043d\u0438\u0445 \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u0442.\u041d\u0438\u0436\u0435 \u0434\u0435\u0441\u044f\u0442\u044c \u0432\u0435\u0449\u0435\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u0437\u0430 \u043f\u043e\u043b\u0433\u043e\u0434\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Claude Code \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 &#171;\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442&#187; \u0438 &#171;\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b&#187;. \u0421 \u0433\u043e\u0442\u043e\u0432\u044b\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u043c\u0438. \u041a\u043e\u043f\u0438\u0440\u0443\u0439, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0439, \u043c\u0435\u043d\u044f\u0439 \u043f\u043e\u0434 \u0441\u0435\u0431\u044f.1. CLAUDE.md \u043d\u0430 30 \u0441\u0442\u0440\u043e\u043a \u0432\u043c\u0435\u0441\u0442\u043e 300CLAUDE.md\u00a0&#8212; \u044d\u0442\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0439 &#171;\u043a\u043e\u043d\u0441\u0442\u0438\u0442\u0443\u0446\u0438\u044f&#187; \u0444\u0430\u0439\u043b. Claude \u0447\u0438\u0442\u0430\u0435\u0442 \u0435\u0433\u043e \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0435\u0441\u0441\u0438\u0438 \u0438 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u043c\u0443. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u0435\u0433\u043e \u0432 \u0441\u0432\u0430\u043b\u043a\u0443: \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043d\u0430 200 \u0441\u0442\u0440\u043e\u043a, \u043f\u043e\u0442\u043e\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0441\u0442\u0438\u043b\u044f \u043d\u0430 100, \u043f\u043e\u0442\u043e\u043c &#171;\u0430 \u0435\u0449\u0451 \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 API \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0442\u0440\u0430\u043d\u043d\u043e&#187;. \u041a 500-\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 Claude \u0443\u0436\u0435 \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438, \u0430 \u0444\u043e\u043d\u043e\u0432\u043e \u0442\u0435\u0440\u043f\u0438\u0442.\u0412 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Anthropic \u0443\u043a\u0430\u0437\u0430\u043d \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0440\u0430\u0437\u043c\u0435\u0440\u00a0\u0434\u043e 200 \u0441\u0442\u0440\u043e\u043a. \u0418\u0437 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u044f \u0434\u0435\u0440\u0436\u0443 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0444\u0430\u0439\u043b \u0435\u0449\u0451 \u0436\u0451\u0441\u0442\u0447\u0435 &#8212; \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 60. \u0418 \u0435\u0441\u0442\u044c \u0437\u043e\u043b\u043e\u0442\u043e\u0439 \u0442\u0435\u0441\u0442: \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0441\u043f\u0440\u043e\u0441\u0438 \u0441\u0435\u0431\u044f &#8212; &#171;\u0435\u0441\u043b\u0438 \u0443\u0431\u0440\u0430\u0442\u044c, Claude \u043d\u0430\u0447\u043d\u0451\u0442 \u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f?&#187;. \u041d\u0435\u0442 &#8212; \u0443\u0434\u0430\u043b\u044f\u0439.\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044f \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 \u0443\u0440\u043e\u0432\u043d\u0435\u0439:Claude \u0447\u0438\u0442\u0430\u0435\u0442 CLAUDE.md \u043f\u043e \u0434\u0435\u0440\u0435\u0432\u0443 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u043f\u0438\u0445\u0430\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0439 CLAUDE.md \u0442\u0432\u043e\u0438 \u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0438 &#8212; \u043e\u043d\u0438 \u0443\u0436\u0435 \u0432 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u043c. \u0418 \u043d\u0435\u0442 \u0441\u043c\u044b\u0441\u043b\u0430 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434-\u043a\u043e\u043d\u0432\u0435\u043d\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0437\u044b\u043a \u0438 \u0442\u0430\u043a \u043d\u0430\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442.\u0412\u043e\u0442 \u043e\u0431\u0435\u0437\u043b\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043c\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043d\u043e\u0433\u043e CLAUDE.md \u0441 \u043e\u0434\u043d\u043e\u0433\u043e voice\/agent \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041d\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u0430 \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0441\u0435\u0441\u0441\u0438\u0439 \u043f\u043e\u0434\u0440\u044f\u0434:# Realtime Voice Agent## Stack- Orchestrator: Elixir\/Phoenix, OTP supervisors- Audio engine: Rust, PortAudio, Rubato resampling- Web UI: Flask + vanilla JS- AI: STT -&gt; LLM -&gt; TTS over WebSocket## Commands- Compile all: mix compile- Rust audio: cd native\/audio_engine &amp;&amp; cargo build &#8212;release- Web syntax: .venv\/bin\/python -m py_compile web\/*.py- Run locally: .\/run.sh## Architecture- Elixir owns orchestration and process lifecycle- Rust owns capture\/playback\/resampling, no business logic- Flask only exposes UI and session controls- Never put API keys, model names or devices inline## Gotchas- Log lines may start with &#171;[ISO timestamp] &#171;. Strip before parsing- Streaming resampler must keep state between chunks- For per-phrase TTS, reset resampler per phrase- If audio breaks, add logs at every hop before changing code## Compact InstructionsWhen compacting, preserve: goal, changed files, failing command,current hypothesis, test results, next exact command.\u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043b\u0443\u0447\u0448\u0435? \u0422\u0443\u0442 \u043d\u0435\u0442 &#171;\u043f\u0438\u0448\u0438 \u0447\u0438\u0441\u0442\u044b\u0439 \u043a\u043e\u0434&#187; \u0438 &#171;\u0431\u0443\u0434\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u0435\u043d&#187;. \u0417\u0430\u0442\u043e \u0435\u0441\u0442\u044c \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Claude \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u0443\u0433\u0430\u0434\u0430\u0435\u0442: \u043a\u0442\u043e \u0432\u043b\u0430\u0434\u0435\u0435\u0442 audio lifecycle, \u0433\u0434\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0438, \u043f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c resampler \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0447\u0430\u043d\u043a\u0435, \u043a\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043b\u043e\u0439. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 CLAUDE.md.\u0412\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 &#8212; \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b, \u0434\u0435\u0442\u0430\u043b\u0438 API, \u043a\u043e\u043d\u0432\u0435\u043d\u0446\u0438\u0438 \u0442\u0435\u0441\u0442\u043e\u0432 &#8212; \u0436\u0438\u0432\u0451\u0442 \u0432\u00a0.claude\/rules\/\u00a0\u0441 path-specific \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438. \u0412 \u043a\u0430\u0436\u0434\u043e\u043c \u0444\u0430\u0439\u043b\u0435 frontmatter \u0441 glob-\u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u043c &#8212; \u0442\u0430\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u0433\u0434\u0430 Claude \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 matching \u0444\u0430\u0439\u043b\u0430\u043c\u0438. \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043d\u0435 \u0437\u0430\u0441\u043e\u0440\u044f\u0435\u0442\u0441\u044f.&#8212;paths:  &#8212; &#171;lib\/voice\/**\/*&#187;  &#8212; &#171;native\/audio_engine\/**\/*&#187;  &#8212; &#171;web\/**\/*&#187;&#8212;# Audio Pipeline Rules- Do not change STT, LLM and TTS providers in one patch- For latency bugs, log timestamps at capture, STT done, LLM first token,  TTS first byte, playback start- If changing WebSocket protocol, update browser parser in the same patch- Never swallow audio engine stderr; surface it in UI logs\u0411\u043e\u043d\u0443\u0441:\u00a0@-\u0438\u043c\u043f\u043e\u0440\u0442\u00a0\u043f\u0440\u044f\u043c\u043e \u0432 CLAUDE.md. \u041f\u0438\u0448\u0435\u0448\u044c\u00a0See @README for project overview\u00a0&#8212; Claude \u043f\u043e\u0434\u0433\u0440\u0443\u0437\u0438\u0442 \u0444\u0430\u0439\u043b \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438. \u0420\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0435 \u043f\u0443\u0442\u0438, \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0434\u043e 5 \u0445\u043e\u043f\u043e\u0432.\u041d\u0430\u0445\u043e\u0434\u043a\u0430.\u00a0\u0420\u0430\u0437\u0434\u0443\u0442\u044b\u0439 CLAUDE.md \u0445\u0443\u0436\u0435 \u0447\u0435\u043c \u0435\u0433\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435. Claude \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 &#8212; \u043e\u043d\u0438 \u0442\u043e\u043d\u0443\u0442 \u0432 \u0431\u043e\u043b\u0442\u043e\u0432\u043d\u0435. \u0417\u043e\u043b\u043e\u0442\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e:\u00a0\u0435\u0441\u043b\u0438 \u0443\u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443, Claude \u043d\u0430\u0447\u043d\u0451\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438? \u041d\u0435\u0442 &#8212; \u0443\u0434\u0430\u043b\u044f\u0439.2. settings.json: \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u041f\u043e \u0434\u0435\u0444\u043e\u043b\u0442\u0443 Claude \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e bash-\u043a\u043e\u043c\u0430\u043d\u0434\u0443. \u042d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u043d\u0435\u0439, \u043f\u043e\u0442\u043e\u043c \u0431\u0435\u0441\u0438\u0442. \u041e\u0442\u0432\u0435\u0442 &#8212;\u00a0.claude\/settings.json\u00a0\u0441 \u044f\u0432\u043d\u044b\u043c\u0438 allow\/deny\/ask \u0441\u043f\u0438\u0441\u043a\u0430\u043c\u0438.\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u0437\u00a0permissions-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438:\u00a0deny \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0431\u0435\u0436\u0434\u0430\u0435\u0442 allow. \u041d\u0430 \u043a\u0430\u043a\u043e\u043c \u0431\u044b \u0443\u0440\u043e\u0432\u043d\u0435 \u0442\u044b \u043d\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443 &#8212; \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430 \u0433\u0434\u0435 \u0443\u0433\u043e\u0434\u043d\u043e, \u043e\u043d\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0435\u043d\u0430. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0442\u044b \u043c\u043e\u0436\u0435\u0448\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c &#171;\u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0451&#187; \u0438 \u0442\u043e\u0447\u0435\u0447\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u043e\u0435.{  &#171;$schema&#187;: &#171;https:\/\/json.schemastore.org\/claude-code-settings.json&#187;,  &#171;permissions&#187;: {    &#171;allow&#187;: [      &#171;Bash(git status)&#187;,      &#171;Bash(git diff *)&#187;,      &#171;Bash(git log *)&#187;,      &#171;Bash(rg *)&#187;,      &#171;Bash(find *)&#187;,      &#171;Bash(mix compile)&#187;,      &#171;Bash(cargo build *)&#187;,      &#171;Bash(cargo test *)&#187;,      &#171;Bash(.venv\/bin\/python -m py_compile *)&#187;,      &#171;Read&#187;    ],    &#171;ask&#187;: [      &#171;Bash(git push *)&#187;,      &#171;Bash(git commit *)&#187;,      &#171;Bash(git tag *)&#187;,      &#171;Bash(.\/deploy.sh *)&#187;,      &#171;Bash(.\/run.sh *)&#187;,      &#171;Edit&#187;,      &#171;Write&#187;    ],    &#171;deny&#187;: [      &#171;Bash(curl *)&#187;,      &#171;Bash(wget *)&#187;,      &#171;Bash(rm -rf *)&#187;,      &#171;Bash(git push &#8212;force *)&#187;,      &#171;Bash(git push -f *)&#187;,      &#171;Bash(sudo *)&#187;,      &#171;Bash(chmod 777 *)&#187;,      &#171;Bash(killall *)&#187;,      &#171;Bash(pkill *)&#187;,      &#171;Read(.\/.env)&#187;,      &#171;Read(.\/.env.*)&#187;,      &#171;Read(.\/secrets\/**)&#187;,      &#171;Read(.\/.ssh\/**)&#187;,      &#171;Read(.\/data\/*.sqlite)&#187;,      &#171;Read(.\/data\/*.db)&#187;    ],    &#171;defaultMode&#187;: &#171;acceptEdits&#187;  }}\u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a? \u042f \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e \u0434\u0435\u0448\u0451\u0432\u0443\u044e \u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438:\u00a0rg,\u00a0git diff, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e, \u0442\u0435\u0441\u0442\u044b. \u041d\u043e \u0432\u0441\u0451 \u0447\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u0442 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u043c\u0438\u0440 &#8212; push, deploy, \u0437\u0430\u043f\u0443\u0441\u043a \u0436\u0438\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, kill\/pkill, chmod &#8212; \u0443\u0445\u043e\u0434\u0438\u0442 \u0432 ask \u0438\u043b\u0438 deny. \u0422\u0430\u043a Claude \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0435\u043a\u0440\u0435\u0442\u0430\u0440\u044f \u043f\u043e \u043a\u043b\u0438\u043a\u0430\u043c, \u043d\u043e \u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043a\u043d\u043e\u043f\u043a\u0443 &#171;\u0440\u0430\u0437\u043d\u0435\u0441\u0442\u0438 \u043f\u0440\u043e\u0434&#187;.Wildcards \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b, \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u043e.\u00a0Bash(ls *)\u00a0\u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u00a0ls -la\u00a0\u043d\u043e \u043d\u0435\u00a0lsof\u00a0&#8212; \u043d\u0435 \u0434\u0430\u0441\u0442 command injection \u0447\u0435\u0440\u0435\u0437 suffix-\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u0435. \u0410 \u0432\u043e\u0442\u00a0Bash(ls*)\u00a0\u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u0438\u00a0lsof\u00a0\u0442\u043e\u0436\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0439.Claude \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0430\u0432\u0442\u043e-\u043e\u0434\u043e\u0431\u0440\u0438\u0442 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432\u0440\u043e\u0434\u0435\u00a0.gitconfig,\u00a0.bashrc,\u00a0.zshrc,\u00a0.mcp.json,\u00a0.claude.json\u00a0&#8212; \u044d\u0442\u043e \u0432\u0448\u0438\u0442\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u0432\u043e\u0435\u0433\u043e allow-\u0441\u043f\u0438\u0441\u043a\u0430. \u0427\u0442\u0435\u043d\u0438\u0435 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0447\u0435\u0440\u0435\u0437\u00a0permissions.deny.3. acceptEdits mode \u0432\u043c\u0435\u0441\u0442\u043e default (Shift+Tab)\u0412 Claude Code \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e permission-\u0440\u0435\u0436\u0438\u043c\u043e\u0432. \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0433\u043d\u043e\u0432\u0435\u043d\u043d\u043e\u0435 &#8212;\u00a0Shift+Tab\u00a0\u0446\u0438\u043a\u043b\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 default, acceptEdits \u0438 plan \u043f\u0440\u044f\u043c\u043e \u0432 \u0441\u0435\u0441\u0441\u0438\u0438.\u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u043b\u0430\u0439\u0444\u0445\u0430\u043a: \u0436\u0438\u0442\u044c \u0432\u00a0acceptEdits. Claude \u043f\u0438\u0448\u0435\u0442, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442, Claude \u043f\u0438\u0448\u0435\u0442, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442. \u0422\u044b \u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u043c\u043e\u0442\u0440\u0438\u0448\u044c diff&#8217;\u044b \u0447\u0435\u0440\u0435\u0437 git. \u041a\u043e\u0433\u0434\u0430 \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u0434\u043e\u00a0git push\u00a0\u0438\u043b\u0438 bash-\u043a\u043e\u043c\u0430\u043d\u0434\u044b &#8212; \u0432\u0441\u0451 \u0435\u0449\u0451 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442. \u0427\u0430\u0441\u043e\u0432 \u0434\u0435\u0441\u044f\u0442\u044c-\u043f\u044f\u0442\u043d\u0430\u0434\u0446\u0430\u0442\u044c \u0432 \u043c\u0435\u0441\u044f\u0446 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442, \u0435\u0441\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0448\u044c \u043f\u043b\u043e\u0442\u043d\u043e.\u041f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0435\u0444\u043e\u043b\u0442\u043e\u043c \u0432 settings.json:{  &#171;permissions&#187;: {    &#171;defaultMode&#187;: &#171;acceptEdits&#187;  }}\u041d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u043e\u0442\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u044e &#8212; \u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e \u0441\u0438\u0434\u0438\u0442\u0435 \u0432\u00a0default, \u043f\u0440\u0438\u0432\u044b\u043a\u0430\u0439\u0442\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e Claude \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u041f\u043e\u0442\u043e\u043c \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435\u0441\u044c.4. \u0425\u0443\u043a\u0438 \u043a\u0430\u043a guardrails: \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438, \u0430\u0432\u0442\u043e\u0444\u043e\u0440\u043c\u0430\u0442, \u043b\u043e\u0433\u0438\u0425\u0443\u043a\u0438\u00a0&#8212; \u044d\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Claude Code \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445: \u043f\u0435\u0440\u0435\u0434 bash-\u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u043f\u043e\u0441\u043b\u0435 Edit, \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0435\u0441\u0441\u0438\u0438, \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u0435\u0439 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u043e lifecycle. \u0422\u0438\u043f\u043e\u0432 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u044f\u0442\u044c: command (shell), http (POST \u043d\u0430 URL), mcp_tool, prompt (one-shot \u0437\u0430\u043f\u0440\u043e\u0441 \u043a \u043c\u043e\u0434\u0435\u043b\u0438), agent (\u0441\u0443\u0431\u0430\u0433\u0435\u043d\u0442).\u0421\u0430\u043c\u043e\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435 &#8212;\u00a0PreToolUse\u00a0\u0438\u00a0PostToolUse. \u0422\u043e\u043b\u044c\u043a\u043e \u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0438\u0448\u0443 inline bash-\u043f\u0440\u043e\u0441\u0442\u044b\u043d\u0438 \u043f\u0440\u044f\u043c\u043e \u0432 JSON. \u0422\u0430\u043a \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0434\u0435\u0431\u0430\u0436\u0438\u0442\u044c. \u0412 settings \u043b\u0435\u0436\u0438\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f, \u043b\u043e\u0433\u0438\u043a\u0430 \u043b\u0435\u0436\u0438\u0442 \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445.\u041c\u043e\u0439 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440:{  &#171;hooks&#187;: {    &#171;PreToolUse&#187;: [      {        &#171;matcher&#187;: &#171;Bash&#187;,        &#171;hooks&#187;: [{ &#171;type&#187;: &#171;command&#187;, &#171;command&#187;: &#171;.claude\/hooks\/block-danger.sh&#187; }]      }    ],    &#171;PostToolUse&#187;: [      {        &#171;matcher&#187;: &#171;Edit|Write&#187;,        &#171;hooks&#187;: [{ &#171;type&#187;: &#171;command&#187;, &#171;command&#187;: &#171;.claude\/hooks\/format-touched.sh&#187; }]      },      {        &#171;matcher&#187;: &#171;Bash&#187;,        &#171;hooks&#187;: [{ &#171;type&#187;: &#171;command&#187;, &#171;command&#187;: &#171;.claude\/hooks\/log-command.sh&#187;, &#171;async&#187;: true }]      }    ]  }}.claude\/hooks\/block-danger.sh:#!\/usr\/bin\/env bashset -euo pipefailINPUT=&#187;$(cat)&#187;CMD=&#187;$(printf &#8216;%s&#8217; &#171;$INPUT&#187; | jq -r &#8216;.tool_input.command \/\/ &#171;&#187;&#8216;)&#187;if printf &#8216;%s&#8217; &#171;$CMD&#187; | grep -Eq &#8216;rm[[:space:]]+-rf[[:space:]]+\/|git[[:space:]]+push[[:space:]]+(-f|&#8212;force)|sudo|chmod[[:space:]]+777|DROP[[:space:]]+TABLE|curl.*[|].*sh&#8217;; then  echo &#171;BLOCKED: dangerous command: $CMD&#187; &gt;&amp;2  exit 2fi.claude\/hooks\/format-touched.sh:#!\/usr\/bin\/env bashset -euo pipefailFILE=&#187;$(jq -r &#8216;.tool_input.file_path \/\/ empty&#8217;)&#187;[ -z &#171;$FILE&#187; ] &amp;&amp; exit 0[ ! -f &#171;$FILE&#187; ] &amp;&amp; exit 0case &#171;$FILE&#187; in  *.py) ruff format &#171;$FILE&#187; ;;  *.ts|*.tsx|*.js|*.jsx) npx prettier &#8212;write &#171;$FILE&#187; ;;  *.ex|*.exs) mix format &#171;$FILE&#187; ;;  *.rs) cargo fmt &#8212; &#171;$FILE&#187; ;;esac.claude\/hooks\/log-command.sh:#!\/usr\/bin\/env bashset -euo pipefailmkdir -p .claude\/logsjq -r &#8216;[now | todateiso8601, .tool_input.command] | @tsv&#8217; &gt;&gt; .claude\/logs\/commands.tsvExit code 2\u00a0= \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430. stderr \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f Claude \u043a\u0430\u043a \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0430\u0437\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u043f\u043e\u0439\u0434\u0451\u0442 \u0443\u0436\u0435 \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443 \u043f\u0443\u0442\u0438.\u00a0async: true\u00a0\u043d\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 workflow. \u041b\u043e\u0433 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0432 \u0444\u043e\u043d\u0435, Claude \u043d\u0435 \u0436\u0434\u0451\u0442.\u042d\u0442\u0438 \u0442\u0440\u0438 \u0444\u0430\u0439\u043b\u0430 \u0441\u043f\u0430\u0441\u0430\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u0440\u0432\u043e\u0432, \u0447\u0435\u043c \u043b\u044e\u0431\u043e\u0439 &#171;\u0431\u0443\u0434\u044c \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u0435\u043d&#187; \u0432 CLAUDE.md. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u0440\u043e\u0441\u0438\u0442. \u0425\u0443\u043a \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442.5. &#171;\u0421\u043e\u0432\u0435\u0449\u0430\u043d\u0438\u0435 \u0431\u043e\u0442\u0438\u043a\u043e\u0432&#187;: Codex + Gemini \u043a\u0430\u043a \u0432\u0442\u043e\u0440\u043e\u0435 \u043c\u043d\u0435\u043d\u0438\u0435\u041f\u0440\u043e \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u0451\u043c \u044f \u043a\u0440\u0430\u0442\u043a\u043e \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u043b \u0432\u00a0\u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438. \u0412\u043e\u0442 \u0434\u0435\u0442\u0430\u043b\u0438 \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442.Claude \u0437\u0430\u0441\u0442\u0440\u044f\u043b. \u0421\u0434\u0435\u043b\u0430\u043b \u0442\u0440\u0438 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438, \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0439\u0434\u0451\u0442 \u0432 \u0447\u0435\u0442\u0432\u0451\u0440\u0442\u044b\u0439 \u043a\u0440\u0443\u0433 \u0430\u0434\u0430. \u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0435\u0449\u0451 \u0440\u0430\u0437 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c &#8212; \u0437\u043e\u0432\u0443 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438. GPT-5.4 \u0447\u0435\u0440\u0435\u0437\u00a0OpenAI Codex CLI\u00a0\u0438 Gemini \u0447\u0435\u0440\u0435\u0437\u00a0Google Gemini CLI. \u041e\u0431\u0430 \u0432\u0438\u0434\u0435\u043b\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043a\u0443\u0441\u043a\u0438 \u043a\u043e\u0434\u0430 \u0438 \u043d\u0430\u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e-\u0434\u0440\u0443\u0433\u043e\u043c\u0443. \u0423 \u043d\u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434.\u0412\u0430\u0436\u043d\u043e:\u00a0\u044d\u0442\u043e \u043d\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u0441\u0442\u0438\u043d\u044b, \u044d\u0442\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0438\u0434\u0435\u0439. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430 Claude \u0438 \u0437\u0430 \u043c\u043d\u043e\u0439. \u0414\u0432\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u0438\u043d\u043e\u0433\u0434\u0430 \u043b\u0430\u0436\u0430\u044e\u0442 \u043d\u0435 \u043c\u0435\u043d\u044c\u0448\u0435. \u041d\u043e \u043e\u0434\u043d\u0430 \u0438\u0437 \u0442\u0440\u0451\u0445 \u0447\u0430\u0441\u0442\u043e \u0432\u0438\u0434\u0438\u0442 \u0447\u0442\u043e-\u0442\u043e, \u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u0438\u0434\u044f\u0442 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435.\u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 custom slash-\u043a\u043e\u043c\u0430\u043d\u0434\u0443. \u0421\u043e\u0437\u0434\u0430\u0451\u043c&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-477732","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/477732","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=477732"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/477732\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=477732"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=477732"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=477732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}