Prompt Files (.prompt)¶
.prompt-файлы — это отдельные файлы с расширением .prompt, которые позволяют хранить и переиспользовать промпты вне основного конфигурационного файла. Они поддерживают продвинутый синтаксис, включая YAML-преамбулу, переменные, контекст-провайдеры и ссылки на файлы.
Обзор¶
Prompt Files предоставляют:
- Модульность — храните каждый промпт в отдельном файле
- Повторное использование — один промпт можно использовать в разных проектах
- Версионирование — легко отслеживать изменения через Git
- Продвинутый синтаксис — поддержка Handlebars, условий, циклов
- Контекст — ссылки на файлы, URL, контекст-провайдеры через
@
Структура .prompt-файла¶
Файл состоит из двух частей, разделённых ---:
# YAML-преамбула (опционально)
---
name: my-prompt
description: Описание промпта
version: 2
---
# Тело промпта
Текст инструкции для LLM...
Преамбула (YAML)¶
Преамбула содержит метаданные промпта:
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
name |
string |
Нет | Имя промпта (по умолчанию — имя файла) |
description |
string |
Нет | Описание для UI (по умолчанию — name) |
version |
number |
Нет | Версия формата (1 или 2, по умолчанию — 2) |
model |
string |
Нет | Предпочтительная модель для промпта |
temperature |
number |
Нет | Температура генерации (0.0–2.0) |
Пример преамбулы:
---
name: code-review
description: Comprehensive code review
version: 2
model: claude-3-7-sonnet
temperature: 0.3
---
Тело промпта¶
Тело содержит инструкцию для LLM. Поддерживает:
- Обычный текст
- Markdown-разметку
- Переменные Handlebars (
{{ variable }}) - Специальные переменные (
{{ code }},{{ file }},{{ input }}) - Ссылки на контекст через
@
Расположение файлов¶
Папки по умолчанию¶
Koda ищет .prompt-файлы в следующих папках:
| Путь | Описание |
|---|---|
.koda/prompts/ |
Основная папка (v2) |
.prompts/ |
Legacy-папка (v1) |
~/.koda/.prompts/ |
Глобальные промпты (все проекты) |
Настройка пути¶
Можно изменить папку для промптов в config.yaml:
Синтаксис тела промпта¶
Базовый пример¶
---
name: explain
description: Explain code
---
Explain the following code in simple terms:
{{ code }}
Include:
- What the code does
- How it works
- Potential improvements
Переменные Handlebars¶
Prompt Files v2 используют Handlebars для шаблонизации:
Простые переменные¶
Условия¶
{{#if input}}
Additional requirements: {{ input }}
{{else}}
No additional requirements provided.
{{/if}}
Отрицательные условия¶
Циклы¶
Специальные переменные¶
{{ code }} — выделенный код¶
Автоматически подставляет выделенный пользователем код:
---
name: refactor
description: Refactor code
---
Refactor the following code to improve readability:
{{ code }}
Provide the refactored version with explanations.
{{ file }} — текущий файл¶
Подставляет содержимое текущего файла:
---
name: analyze
description: Analyze file
---
Analyze the structure and quality of this file:
{{ file }}
Suggest improvements for:
- Code organization
- Naming conventions
- Error handling
- Performance
{{ input }} — пользовательский ввод¶
Текст, введённый после команды /name:
---
name: improve
description: Improve code
---
Improve the code based on these requirements:
**Requirements:** {{ input }}
**Code:**
{{ code }}
Контекст через @¶
Можно ссылаться на файлы, URL и контекст-провайдеры с помощью @:
Ссылки на файлы¶
---
name: full-review
description: Full project review
---
Review the code considering the project structure:
@README.md
@src/main.py
@package.json
Focus on consistency and best practices.
Относительные пути¶
@src/utils/helper.py # Относительно корня workspace
@../shared/types.ts # Относительно текущей папки
@/Users/me/project/config.yaml # Абсолютный путь
URL¶
Контекст-провайдеры¶
@currentFile # Текущий файл
@terminal # Вывод терминала
@os # Информация об ОС
@repo-map # Карта репозитория
@diff # Текущие изменения
Системное сообщение¶
Можно задать системное сообщение внутри промпта:
---
name: expert-coder
description: Expert coding assistant
---
<system>
You are an expert software engineer with deep knowledge of:
- Software architecture
- Design patterns
- Best practices
- Security considerations
Always provide clear, well-structured answers with code examples.
</system>
{{ code }}
Подключение в config.yaml¶
Базовое подключение¶
Несколько промптов¶
prompts:
- uses: ./.koda/prompts/code-review
- uses: ./.koda/prompts/unit-tests
- uses: ./.koda/prompts/documentation
С переопределениями¶
Практические примеры¶
Код-ревью¶
---
name: review
description: Comprehensive code review
version: 2
---
<system>
You are a senior code reviewer with expertise in:
- Code quality
- Security
- Performance
- Maintainability
</system>
Review the following code:
{{ code }}
{{#if input}}
Focus especially on: {{ input }}
{{/if}}
Provide feedback on:
1. **Bugs and errors** - Identify any potential issues
2. **Security** - Check for vulnerabilities
3. **Performance** - Suggest optimizations
4. **Style** - Code consistency and readability
5. **Best practices** - Industry standards adherence
For each issue, provide:
- Severity (Critical/High/Medium/Low)
- Description
- Suggested fix
Генерация тестов¶
---
name: test
description: Generate unit tests
version: 2
---
Generate comprehensive unit tests for the following code:
{{ code }}
{{#if framework}}
Use {{ framework }} testing framework.
{{else}}
Use appropriate testing framework for the language.
{{/if}}
{{#if input}}
Additional requirements:
{{ input }}
{{/if}}
Include:
- Happy path tests
- Edge cases
- Error handling
- Mock external dependencies
Provide tests ready to run.
Документирование¶
---
name: document
description: Add documentation
version: 2
---
Add comprehensive documentation to the code:
{{ code }}
{{#if language}}
Use {{ language }} documentation conventions.
{{else}}
Use standard documentation conventions.
{{/if}}
Include:
- Module/file-level docstring
- Function/method docstrings
- Parameter descriptions (@param)
- Return value descriptions (@returns)
- Exception documentation (@throws)
- Usage examples
@README.md
Рефакторинг¶
---
name: refactor
description: Refactor code
version: 2
---
Refactor the following code to improve:
{{ code }}
{{#if input}}
Focus areas:
{{ input }}
{{else}}
Focus areas:
- Readability
- Maintainability
- Performance
- SOLID principles
{{/if}}
Provide:
1. Analysis of current issues
2. Refactored code
3. Explanation of changes
4. Migration notes if breaking changes
@src/**/*.py
Генерация кода¶
---
name: generate
description: Generate code from specification
version: 2
---
Generate code based on the specification:
{{#if input}}
**Specification:**
{{ input }}
{{else}}
**Specification:** (not provided - ask for clarification)
{{/if}}
{{#if language}}
**Target language:** {{ language }}
{{/if}}
{{#if framework}}
**Framework:** {{ framework }}
{{/if}}
Requirements:
- Follow best practices
- Include error handling
- Add type hints
- Write self-documenting code
- Include usage examples
@package.json
Отладка¶
---
name: debug
description: Debug an issue
version: 2
---
Help debug the following issue:
{{#if input}}
**Problem description:**
{{ input }}
{{/if}}
**Code:**
{{ code }}
{{#if error}}
**Error message:**
{{ error }}
{{/if}}
@terminal
Steps to diagnose:
1. Analyze the error message
2. Identify root cause
3. Suggest potential fixes
4. Provide corrected code
Оптимизация¶
---
name: optimize
description: Optimize performance
version: 2
---
Analyze and optimize the performance of:
{{ code }}
{{#if input}}
**Specific concerns:**
{{ input }}
{{/if}}
Focus on:
- Time complexity
- Space complexity
- Memory usage
- Unnecessary operations
- Caching opportunities
- Algorithm improvements
Provide:
1. Performance analysis
2. Bottleneck identification
3. Optimized code
4. Benchmarking suggestions
Продвинутые возможности¶
Вложенные промпты¶
Можно ссылаться на другие .prompt-файлы:
---
name: full-analysis
description: Complete code analysis
---
@./.koda/prompts/review.prompt
@./.koda/prompts/security.prompt
@./.koda/prompts/performance.prompt
Provide a consolidated report.
Частичные шаблоны¶
Используйте частичные шаблоны для переиспользования:
Динамический контекст¶
Комбинируйте多个 контекст-провайдеров:
---
name: pr-review
description: Pull request review
---
Review this pull request:
@diff
@currentFile
@README.md
{{#if input}}
**PR description:**
{{ input }}
{{/if}}
Check for:
- Code quality
- Test coverage
- Documentation updates
- Breaking changes
Рекомендации¶
Хорошие практики¶
1. Модульность:
# ✅ Хорошо: отдельные файлы для разных задач
.koda/prompts/
review.prompt
test.prompt
document.prompt
refactor.prompt
2. Документирование:
# ✅ Хорошо: понятное имя и описание
---
name: security-audit
description: Security-focused code audit
---
3. Структурирование:
# ✅ Хорошо: чёткая структура
<system>Role definition</system>
Context:
{{ code }}
Task:
{{ input }}
Output format:
- Analysis
- Findings
- Recommendations
4. Переиспользование:
Чего избегать¶
1. Слишком большие файлы:
2. Жёстко заданные пути:
# ❌ Плохо: абсолютные пути
@/Users/username/specific/path/file.py
# ✅ Хорошо: относительные пути
@src/file.py
3. Избыточная информация:
# ❌ Плохо: дублирование контекста
{{ code }}
{{ code }}
{{ file }} # если file == code
# ✅ Хорошо: только необходимый контекст
{{ code }}
Производительность¶
Оптимизация размера:
- Избегайте дублирования контекста
- Используйте точечные ссылки на файлы
- Очищайте неиспользуемые промпты
Кэширование:
- Koda кэширует рендеринг промптов
- Изменения в .prompt-файлах требуют перезагрузки конфига
Отладка¶
Проверка синтаксиса¶
Тестирование промпта¶
- Создайте файл
.koda/prompts/test.prompt - Добавьте отладочный вывод:
---
name: test-debug
description: Debug test
---
**Debug info:**
- Input: {{ input }}
- Code length: {{ code.length }}
- Available context: {{ this }}
{{ code }}
- Вызовите через
/test-debug
Логирование¶
Для сложных промптов добавьте вывод промежуточных значений:
---
name: debug-vars
description: Debug variable substitution
---
**Variables:**
{{#if input}}
- input: {{ input }}
{{/if}}
{{#if code}}
- code: [{{ code.length }} chars]
{{/if}}
{{#if file}}
- file: {{ file }}
{{/if}}
Интеграция с другими функциями¶
С правилами (rules)¶
Промпты работают совместно с правилами:
rules:
- Always use TypeScript
- Write tests for new code
- Follow company style guide
prompts:
- uses: ./.koda/prompts/implement
С моделями¶
Можно указать предпочтительную модель:
---
name: complex-task
description: Complex analysis
model: claude-3-7-sonnet
temperature: 0.3
---
Perform detailed analysis...
С контекст-провайдерами¶
Используйте контекст-провайдеры в промптах:
---
name: terminal-debug
description: Debug with terminal
---
Analyze the terminal output:
@terminal
{{ code }}
Identify the issue and suggest fixes.
Миграция с v1 на v2¶
Изменения в синтаксисе¶
v1:
v2:
Автоматическая миграция¶
Koda автоматически определяет версию по наличию version: 2 в преамбуле.
Совместимость¶
- v1 промпты продолжают работать
- v2 функции недоступны в v1
- Рекомендуется миграция на v2
См. также¶
- Prompts — базовая спецификация промптов
- Переменные в промптах — работа с переменными
- Rules — системные правила
- Configuration — общая конфигурация