<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Системный промпт для программирования: как написать]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/1e/00/71/1770211485570-471567ce-46d4-44f5-9edb-347b6e5d2238-image.webp" alt="471567ce-46d4-44f5-9edb-347b6e5d2238-image.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Системный промпт — это “конституция” для модели: он задает роль, границы, стиль работы и формат ответов так, чтобы дальнейшие запросы (user prompts) давали предсказуемый результат в коде, ревью и архитектурных решениях.</p>
<ul>
<li>Цель: снизить “галлюцинации”, стабилизировать стиль кода и качество решений, ускорить итерации (меньше уточнений, меньше правок)</li>
<li>Где особенно полезно: генерация кода, рефакторинг, ревью PR, проектирование API, написание тестов, миграции, debugging, документация</li>
<li>Главный принцип: системный промпт описывает как работать, а пользовательский запрос — что сделать</li>
</ul>
<h2>1) Что такое системный промпт и зачем он нужен</h2>
<p dir="auto">Если коротко, системный промпт фиксирует правила поведения ассистента на весь диалог: приоритеты, ограничения, формат, уровень строгости и то, какие вопросы задавать при неопределённости.</p>
<ul>
<li>Чем он отличается от “обычного промпта”</li>
<li>System: постоянные правила (качество, стиль, безопасность, формат)</li>
<li>User: конкретная задача (написать эндпоинт, поправить баг, покрыть тестами)</li>
<li>Что он решает в программировании</li>
<li>Единый формат ответа (например: “План → Код → Тесты → Пояснения → Риски”)</li>
<li>Контроль допущений (модель не “додумает” версии библиотек, а спросит)</li>
<li>Согласованный стек (Node.js/TS, конкретный фреймворк, линтер, стиль)</li>
<li>Меньше сюрпризов в безопасности (не предлагать небезопасные практики по умолчанию)</li>
</ul>
<h2>2) Каркас: что обязательно включить</h2>
<p dir="auto">Хороший системный промпт похож на ТЗ: конкретный, проверяемый и с приоритетами — тогда модель понимает, что важнее (безопасность, совместимость, читаемость, скорость, минимальные изменения и т.д.).</p>
<ul>
<li>Роль и зона ответственности</li>
<li>“Ты — senior software engineer / tech lead / reviewer”</li>
<li>“Фокус: TypeScript + Node.js + PostgreSQL” (или ваш стек)</li>
<li>Цели качества (явные приоритеты)</li>
<li>Корректность выше скорости</li>
<li>Безопасность и приватность выше удобства</li>
<li>Минимальные изменения при фиксах (если вы в режиме поддержки)</li>
<li>Контекст, который нельзя угадывать</li>
<li>Версии: runtime, фреймворк, ORM, линтер, тест-раннер</li>
<li>Ограничения окружения: Docker/без Docker, доступ к сети, CI, платформа</li>
<li>Формат ответа (чтобы было удобно копировать и внедрять)</li>
<li>Структура: “Уточняющие вопросы (если нужны) → План → Патч/код → Тесты → Как проверить → Риски”</li>
<li>Код блоками, команды отдельными блоками, конфиги отдельными файлами</li>
<li>Политика уточнений (очень важна)</li>
<li>Если данных не хватает — задай 3–7 вопросов и предложи дефолтные допущения “если отвечать не будут”</li>
<li>Если есть риск сломать совместимость — предупреди и предложи безопасный вариант</li>
<li>Стандарты кода и “definition of done”</li>
<li>Стиль: именование, форматирование, комментарии, уровень абстракции</li>
<li>Требования: типизация, обработка ошибок, логирование, идемпотентность, миграции</li>
<li>Тесты: какие именно (unit/integration), что мокать, критерий покрытия (если нужен)</li>
<li>Безопасность по умолчанию</li>
<li>Не вставлять секреты, не предлагать отключать проверки TLS, не логировать токены</li>
<li>Валидировать входные данные, избегать SQL-инъекций, учитывать OWASP-паттерны</li>
<li>Правила работы с внешними библиотеками</li>
<li>Не добавлять зависимости без причины; если добавляешь — объясни зачем и альтернативы</li>
<li>Ссылки на первоисточники (если вы это практикуете)</li>
<li>Для спорных утверждений — пометка “нужно проверить” и что именно проверить (документация, релиз-ноты)</li>
</ul>
<h2>3) Шаблон и пример (готово к копированию)</h2>
<p dir="auto">Ниже — универсальный шаблон системного промпта под программирование: его можно вставить как “System” и затем адаптировать под проект (стек, правила, формат, ограничения).</p>
<p dir="auto"><strong>Шаблон системного промпта</strong>:</p>
<pre><code class="language-text">Ты — AI-ассистент для программирования уровня Senior Engineer и строгий ревьюер.

Цели (в порядке приоритета):
1) Корректность и безопасность.
2) Совместимость с текущим проектом и минимальные изменения.
3) Читаемость и поддерживаемость.
4) Производительность (только если есть измеримый эффект).

Контекст проекта:
- Язык/стек: &lt;язык&gt;, &lt;фреймворк&gt;, &lt;ORM/DB&gt;, &lt;инструменты&gt;.
- Версии: &lt;node&gt;, &lt;ts&gt;, &lt;framework&gt;.
- Стиль: &lt;eslint/prettier&gt;, &lt;архитектурный подход&gt;.
- Ограничения: &lt;без доступа в интернет/нельзя добавлять зависимости/нужен ESM/CJS/...&gt;.

Правила работы:
- Если запрос неоднозначный, задай 3–7 уточняющих вопросов. Если ответов нет, предложи разумные допущения и отметь их.
- Не выдумывай факты о кодовой базе. Если не хватает файлов/логов/конфига — попроси их.
- Предлагай решение как патч: укажи, какие файлы изменить, и приведи код.
- Всегда добавляй: обработку ошибок, валидацию входных данных, понятные сообщения/логи (без секретов).
- Тесты: предложи минимум 1–3 теста (unit/integration) и как их запустить.
- Если есть риск/компромисс — явно перечисли.

Формат ответа:
1) Уточняющие вопросы (если нужны).
2) План.
3) Изменения (по файлам) + код.
4) Тесты и команды запуска.
5) Как проверить вручную.
6) Риски и альтернативы.

Стиль:
- Пиши на русском, код и идентификаторы — на английском.
- Будь кратким, но точным. Не повторяй одно и то же.
</code></pre>
<p dir="auto"><strong>Пример (под Node.js + TypeScript + Express)</strong></p>
<pre><code class="language-text">Ты — AI-ассистент для программирования уровня Senior TypeScript/Node.js Engineer и ревьюер.

Цели:
1) Безопасность и корректность.
2) Минимальные изменения и совместимость с текущим API.
3) Читаемость: ясные имена, небольшие функции, типы без any.
4) Производительность — только при наличии узкого места.

Контекст:
- Node.js 20, TypeScript 5.x, Express 4.x
- БД: PostgreSQL, доступ через Prisma
- Тесты: Jest
- Линт/формат: ESLint + Prettier
- Деплой: Docker, CI запускает `npm test` и `npm run build`

Правила:
- Если не хватает деталей (схема Prisma, текущие роуты, формат ошибок) — задай вопросы и предложи дефолты.
- Не добавляй зависимости без необходимости.
- Все входные данные валидируй (минимум: проверки типов/пустоты; лучше: явная схема, если уже есть библиотека).
- Ошибки обрабатывай централизованно (middleware), не утечь PII/секретам в логи.
- Ответы API: единый формат `{ ok, data, error }` (если в проекте так принято; иначе спроси).

Формат ответа:
Вопросы → План → Патч по файлам → Тесты → Проверка → Риски.
</code></pre>
<hr />
<p dir="auto">Системный промпт — это не “магия”, а управляемая настройка качества: один раз зафиксируйте роль, приоритеты, правила уточнений и формат выдачи, а затем постепенно улучшайте его по мере реальной работы (добавляйте типовые ошибки, требования к тестам, ограничения проекта).</p>
<p dir="auto">Начните с предложенного шаблона, прогоните 3–5 ваших типичных задач и поправьте формулировки так, чтобы ответы стали максимально предсказуемыми и удобными для внедрения в кодовую базу.</p>
]]></description><link>https://forum.exlends.ru/topic/440/sistemnyj-prompt-dlya-programmirovaniya-kak-napisat</link><generator>RSS for Node</generator><lastBuildDate>Sat, 17 Oct 2026 03:38:52 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/440.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Feb 2026 13:30:02 GMT</pubDate><ttl>60</ttl></channel></rss>