Skip to content
This repository was archived by the owner on May 17, 2026. It is now read-only.
This repository was archived by the owner on May 17, 2026. It is now read-only.

AI-кодинг на open-space? #38

@cryals

Description

@cryals

Что это

Нужно довести до нормального production-состояния систему инструкций для ИИ в репозитории open-space, чтобы агенты и ревью-боты писали код ближе к нашим правилам SS14-форка, а не тащили легаси, кривой prediction и случайные апстрим-диффы.

Цель:

  • улучшить качество AI-кода;
  • уменьшить количество тупых замечаний на ревью;
  • сделать один канонический источник правил;
  • научить CodeRabbit и других агентов смотреть на репо одинаково.

Что уже готово

Канон и структура

  • Канон инструкций вынесен в .agents/rules/ и .agents/skills/
  • Root AGENTS.md сделан главным роутером по skills и rules
  • Добавлены subtree AGENTS.md для Content.Shared, Content.Server, Content.Client, Resources, Content.Tests, Content.IntegrationTests
  • Сделаны мосты для:
    • Codex
    • Cursor
    • GitHub Copilot
    • Claude
    • Gemini

База

  • Какой код куда писать
  • Кратко про ECS
  • Запрет/эскалация правок движка
  • Схема работы prediction
  • Обязательность максимальной поддержки prediction
  • Обязательность локализации
  • Клиент / сервер / shared
  • Networking, NetEntity, Dirty, networked components
  • Дебаг, VV, логи, breakpoints
  • Полезные API-паттерны EntitySystem / PrototypeManager / Audio / Popup

Кодстайл

  • Нейминг методов подписки
  • Нейминг зависимостей
  • Использование Entity<T>
  • Схема On -> Try -> Can -> Do
  • Использование [DataField] и ProtoId<T> / [Prototype] без легаси-стиля
  • Нейминг локализации
  • Общие C#-правила для SS14

Метод работы с кодом оффов / форка

  • Правила narrow diff
  • Типы правок в upstream-коде
  • Максимальное вынесение fork-only логики из апстримных файлов
  • Сохранение подобия путей
  • Границы engine/content/fork code

Примеры

  • Простая Component + System
  • Простой прототип предмета / структуры
  • Реагент в YAML
  • GenericVisualizer
  • Локализация прототипа / marking
  • Простой пример локализации строки
  • Примеры тестовых anchors

Доменные skills

  • Отдельные skills под конкретные подсистемы:
    • audio
    • atmos
    • transform / physics
    • pvs
    • xaml / eui / bui в более узком разбиении
    • sprite / overlays / shaders
    • databases / migrations
    • npc / AI systems
  • ss14-ui-bui сужен до BUI-specific guidance
  • Добавлены отдельные ss14-ui-xaml и ss14-ui-eui
  • Root AGENTS.md обновлен для роутинга новых доменных skills
  • .agents/rules/ss14-skill-preflight-and-refresh.md обновлен для роутинга новых доменных skills
  • Subtree AGENTS.md для Content.Client, Content.Server, Content.Shared, Resources обновлены под новые доменные skills

Дополнительно

  • Документация из локального docs/ вынесена в skills
  • docs/ больше не является источником правды
  • Добавлены onboarding-skills:
    • ss14-prototype-basics
    • ss14-ecs-basics
    • ss14-client-server-shared
    • ss14-debugging-workflow
    • ss14-common-api-patterns
    • ss14-porting-and-licensing
    • ss14-ai-workflow
  • Настроен .coderabbit.yaml под этот монорепо
  • PR template чуть усилен под linked issues

Что еще не готово

CodeRabbit hardening

  • Добавить кастомные ast-grep правила под SS14-антипаттерны
  • Подкрутить path instructions после нескольких живых PR
  • Проверить шумность assertive профиля на реальных изменениях
  • При необходимости завести org/repo-level labeling instructions под наши label’ы

Эксплуатация

  • Прогнать forward-test на серии типовых задач:
    • маленькая gameplay-фича
    • shared predicted interaction
    • Resources-only PR
    • UI/BUI PR
    • test-only PR
  • Прогнать на нескольких реальных PR и собрать, где агенты/CodeRabbit все еще тупят
  • Подчистить или переписать слабые/шумные инструкции после обкатки

Поддержка

  • Продумать, нужен ли генератор/скрипт синхронизации bridge-файлов из .agents
  • Определить процесс обновления skills при изменении наших внутренних правил кодинга
  • Назначить это как поддерживаемый слой репозитория, а не разовую акцию

Где лежит канон

Источник правды:

  • .agents/rules/
  • .agents/skills/

Адаптеры поверх канона:

  • AGENTS.md
  • .cursor/rules/
  • .github/copilot-instructions.md
  • .github/instructions/
  • CLAUDE.md
  • .claude/rules/
  • GEMINI.md
  • .coderabbit.yaml

Зачем это вообще нужно

Без этого ИИ в сложной SS14-кодовой базе стабильно:

  • пишет легаси вместо наших паттернов;
  • забывает про prediction;
  • забывает про локализацию;
  • лезет не в те сборки (Shared/Server/Client);
  • делает лишние диффы в апстримных файлах;
  • тащит шум в ревью.

Нормальный instruction-layer должен сделать так, чтобы AI-контрибьюторы приносили код, который не придется по 300 раз чинить на ревью.

Критерий закрытия issue

  • Канон .agents стабилен и покрывает основные сценарии open-space
  • CodeRabbit дает полезные, а не шумные замечания на реальных PR
  • Для основных зон репо есть path-specific guidance
  • Закрыты самые частые SS14-антипаттерны через skills/rules и/или ast-grep
  • После нескольких реальных PR не остается очевидных дыр в instruction-layer

Metadata

Metadata

Type

No fields configured for Task.

Projects

Status
В разработке

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions