llm
July 9

Продуктивный вайб-кодинг с файлом llm-context.md

При работе с агентно-ориентированными LLM-инструментами (Cursor, Cline, Zed...) часто возникает необходимость предоставить языковой модели контекст о текущем проекте: что он делает, почему работает именно так, какие архитектурные решения приняты. Это особенно критично при работе в множественных сеансах, каждый из которых имеет ограниченное контекстное окно.

Типичный старт диалога с LLM выглядит примерно так:

У меня есть Node.JS проект, целью является публикация PWA, используется SvelteKit, TailwindCSS и PostgreSQL. Приложение позволяет [...] (длинное описание бизнес-правил)

Повторять это каждый раз — неэффективно.

Решение — создание специального файла контекста llm-context.md.

Это аналог README.md, но предназначенный не для пользователей, а для непосредственного использования языковой моделью. Файл содержит всю контекстную информацию о проекте, которую не нужно вводить повторно, и является точкой входа для LLM.

Ключевая особенность: файл контекста реализуется как самоподдерживаемый протокол, который автоматически эволюционирует и совершенствуется.

Протокол инициализации контекста

Для автоматизации работы с файлом контекста используется специальное, включенное по умолчанию, промпт-протокол-правило Context | Protocol:

# Initial Protocol: Context Genesis

## Objective

Execute at session start to ensure `llm-context.md` exists and is current.

## Procedure

### Step 1: Locate `llm-context.md` in project root

### Step 2: Execute based on result

**A: File EXISTS**

1. Read content
2. Check for headers: `### 1. Overall Concept`, `### 6. Task Completion Protocol`, `### 7. Change History`
3. If valid: Report "Reviewed `llm-context.md` - following established principles"
4. If invalid: Migrate content to new template, analyze project structure, overwrite file, report update

**B: File NOT FOUND**

1. Analyze project structure
2. Create `llm-context.md` with template below
3. Report creation and request project summary

## Template

```markdown
# Project Context

### Meta-Protocol Principles

1. **Decreasing Abstraction**: General to specific
2. **Mandatory Self-Improvement**: Every task updates this document
3. **Protocol Evolution**: Improve rules when better workflow discovered

### 1. Overall Concept

- [Brief project summary]

### 2. Core Entities

- **[Entity]**: [Description]

### 3. Architectural Decisions

- **[Decision]**: [Description]
  - **Rationale**: [Why]
  - **Trade-offs**: [What was sacrificed]

### 4. Project Structure

- `/[directory]/`: [Purpose]

### 5. Development Conventions

- **[Convention]**: [Description]

### 6. Task Completion Protocol

**Step 1**: Verify changes align with sections 3-5
**Step 2**: Run quality check: `[command]`
**Step 3**: Update this file:

1. Analyze changes
2. Update sections 1-5
3. Add numbered history entry
4. Keep max 20 history entries

### 7. Change History

1. **Context Initialization**: Document created for systematic knowledge accumulation
```

Применение файла контекста

Начало нового сеанса

При переполнении контекстного окна или начале новой рабочей сессии языковая модель автоматически:

  • Находит или создает файл llm-context.md
  • Проверяет соответствие актуальному протоколу
  • Обновляет структуру при необходимости
  • Предоставляет готовый к работе контекст

Принципы живого протокола

Файл llm-context.md следует принципам самоэволюционирующего протокола:

  1. Уменьшение абстракции: Информация структурируется от общего к частному
  2. Обязательное самосовершенствование: Каждая задача завершается обновлением документа
  3. Эволюция протокола: Правила совершенствуются при обнаружении более эффективных рабочих процессов

Поддержание актуальности контекста

Автоматическое обновление через протокол завершения задач

Каждая задача должна завершаться строгим следованием протоколу:

  1. Проверка изменений: Убедиться, что все изменения соответствуют принципам проекта
  2. Контроль качества: Запустить основную команду проверки качества кода
  3. Обновление контекста: Обновить файл llm-context.md, отражая внесенные изменения

Ручное обновление в конце сеанса

Если протокол завершения задач не был выполнен, используется следующая промпт-правило Context | Update:

# Evolve `./llm-context.md` in light of our recent conversation. Go beyond recording changes: document subtle insights and layered abstractions to guide and enrich future iterations.

Эта команда инструктирует LLM:

  • Обобщить добавленную функциональность
  • Зафиксировать критические особенности и подводные камни
  • Обновить архитектурные решения
  • Добавить новые сущности или соглашения

Для последующих обновлений в том же сеансе Context | Update again:

# Remember that `./llm-context.md` file? Keep evolve it with this new info.

Дополнительные команды для работы с контекстом

Глубокий анализ проекта

Промпт-правило Context | Analyze:

# Analyze project structure and update `./llm-context.md` with comprehensive insights about architecture, patterns, and development practices discovered.

Синхронизация с документацией

Промпт-правило Context | Docs sync:

# Cross-reference `./llm-context.md` with existing documentation (README, docs/, comments) and harmonize information for consistency.

Оптимизация контекста

Промпт-правило Context | Optimize:

# Review and optimize `./llm-context.md` structure for better clarity and remove redundant information while preserving essential context.

Преимущества самоэволюционирующего протокола

Накопительное обучение

Каждый сеанс добавляет к базе знаний проекта, создавая все более точную и полезную модель приложения. Система аккумулирует опыт и постепенно формирует глубокое понимание проекта.

Автоматическая консистентность

Протокол завершения задач гарантирует, что никакие изменения не остаются недокументированными. Это предотвращает расхождение между реальным состоянием проекта и его описанием в контекстном файле.

Эволюция правил

Сам протокол может развиваться — если обнаруживается более эффективный рабочий процесс, он интегрируется в будущие итерации. Это обеспечивает постоянное совершенствование методологии работы.

Контекстная непрерывность

Файл обеспечивает непрерывность контекста между сеансами, что особенно важно для долгосрочных проектов и командной работы.

Структура эффективного файла контекста

Обязательные секции

  1. Overall Concept — краткое описание назначения и области применения проекта
  2. Core Entities — ключевые сущности и их взаимосвязи
  3. Architectural Decisions — принятые архитектурные решения с обоснованием
  4. Project Structure — организация файлов и директорий
  5. Development Conventions — соглашения и стандарты разработки
  6. Task Completion Protocol — процедуры завершения задач
  7. Change History — хронология изменений и эволюции проекта

Рекомендации по заполнению

  • Использовать конкретные примеры вместо абстрактных описаний
  • Указывать не только «что», но и «почему» принято то или иное решение
  • Фиксировать компромиссы и альтернативы, которые были отвергнуты
  • Поддерживать актуальность технической информации

Интеграция с рабочим процессом

Автоматизация через пользовательские правила

Контекстный файл интегрируется в рабочий процесс через пользовательские правила LLM-инструментов. Это обеспечивает автоматическое выполнение протокола без дополнительных усилий.

Совместимость с различными инструментами

Протокол разработан для работы с различными LLM-инструментами и может быть адаптирован под специфику конкретного инструмента без изменения базовой структуры.

Масштабируемость

Система масштабируется от небольших проектов до крупных корпоративных решений, адаптируясь к сложности и размеру проекта.

Заключение

Самоэволюционирующий файл llm-context.md трансформирует каждый сеанс работы с LLM в продуктивный опыт с полным контекстом. Вместо повторного ввода базовой информации создается накопительная база знаний, которая постоянно совершенствуется и адаптируется к эволюции проекта.

Данный подход не только экономит время, но и обеспечивает более точные и контекстуально релевантные ответы от языковой модели, превращая ее из простого инструмента в полноценного партнера по разработке, который "помнит" и "понимает" проект все лучше с каждым сеансом.

Благодаря встроенному протоколу самокоррекции и эволюции, система гарантирует, что база знаний остается актуальной, структурированной и полезной, независимо от того, как развивается проект. Это создает устойчивую основу для долгосрочной продуктивной работы с LLM в контексте разработки программного обеспечения.

Источником вдохновения послужила эта статья, при этом работа с файлом контекста переработана в сторону автоматизации и использования принципа убывающей абстракции