bootstrap
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
---
|
||||
name: adr
|
||||
description: "Создание Architecture Decision Records"
|
||||
---
|
||||
|
||||
# /adr — Architecture Decision Record
|
||||
|
||||
## Формат
|
||||
|
||||
Файл: `docs/adr/<NNNN>-<title>.md`
|
||||
|
||||
```markdown
|
||||
# ADR-<NNNN>: <Title>
|
||||
|
||||
**Статус:** Proposed | Accepted | Deprecated
|
||||
|
||||
## Контекст
|
||||
|
||||
...
|
||||
|
||||
## Решение
|
||||
|
||||
...
|
||||
|
||||
## Альтернативы
|
||||
|
||||
...
|
||||
|
||||
## Последствия
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
## Нумерация
|
||||
|
||||
- Первый свободный номер: следующий после существующих в `docs/adr/`
|
||||
- Название — kebab-case на русском или английском
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
name: ask
|
||||
description: "Q&A по платформе без создания артефактов"
|
||||
---
|
||||
|
||||
# /ask — Вопрос по платформе
|
||||
|
||||
Задай вопрос о платформе МПШ.Логистика, архитектуре, сервисах или процессах.
|
||||
|
||||
- Не создаёт файлов (spec, plan, commit)
|
||||
- Использует AGENTS.md и AGENTS.md сервисов как источник знаний
|
||||
- При вопросе о коде — читает AGENTS.md целевого сервиса
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
name: coding-principles
|
||||
description: "Принципы написания кода"
|
||||
---
|
||||
|
||||
# /coding-principles — Принципы кода
|
||||
|
||||
## Общие
|
||||
|
||||
- Минимальный scope изменений — только то, что нужно для задачи
|
||||
- Следовать существующим конвенциям и стилю кода
|
||||
- Комментарии — только когда WHY неочевидно
|
||||
- Не редактировать сгенерированный код (NSwag, EF migrations snapshot)
|
||||
|
||||
## C# / .NET
|
||||
|
||||
- Nullable reference types включены
|
||||
- Слои: `Instance` → `BusinessLogic` → `Database` → `Models`/`Core`
|
||||
- Acceptance tests в отдельных проектах
|
||||
|
||||
## TypeScript / React
|
||||
|
||||
- Без `any` — строгая типизация
|
||||
- Компоненты в `src/components/`, API-клиенты в `src/api/`
|
||||
- SCSS modules
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: generate-agents-md-app
|
||||
description: "Регенерация group-level AGENTS.md"
|
||||
---
|
||||
|
||||
# /generate-agents-md-app — Обновить AGENTS.md группы
|
||||
|
||||
Вызывает `ml-agent-generate-agents-md-app` для регенерации managed-секций (`<!-- managed:service-index -->`) в `backend/AGENTS.md`, `frontend/AGENTS.md`, `libs/AGENTS.md`, `infrastructure/AGENTS.md`.
|
||||
|
||||
## Процесс
|
||||
|
||||
1. Определить группу (путь в workspace)
|
||||
2. Сканировать клонированные сервисы группы и `repos.yml`
|
||||
3. Перегенерировать managed-секцию в `<group>/AGENTS.md`
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: generate-agents-md
|
||||
description: "Генерация AGENTS.md для сервиса"
|
||||
---
|
||||
|
||||
# /generate-agents-md — Создать AGENTS.md сервиса
|
||||
|
||||
Вызывает `ml-agent-agents-md-builder` для генерации AGENTS.md в клонированном сервисном репозитории.
|
||||
|
||||
## Процесс
|
||||
|
||||
1. Определить сервис (путь в workspace)
|
||||
2. Исследовать код сервиса: `*.csproj`, `appsettings.json`, структура src/
|
||||
3. Сгенерировать `AGENTS.md` в корне сервиса
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
name: git-commit
|
||||
description: "Формирование коммита по стандарту"
|
||||
---
|
||||
|
||||
# /git-commit — Формат коммита
|
||||
|
||||
## Формат
|
||||
|
||||
```
|
||||
<type>(<scope>): <subject>
|
||||
```
|
||||
|
||||
## Типы
|
||||
|
||||
`feat` · `fix` · `refactor` · `test` · `docs` · `chore` · `build` · `ci`
|
||||
|
||||
## Scope
|
||||
|
||||
Имя сервиса: `api`, `filestorage`, `ui.facade`, `ui.client`, `pdf.viewer`
|
||||
|
||||
## Примеры
|
||||
|
||||
```
|
||||
feat(api): add transportation status filter endpoint
|
||||
fix(ui.client): correct date picker timezone
|
||||
refactor(filestorage): extract content validation
|
||||
```
|
||||
|
||||
## Процесс
|
||||
|
||||
1. Проверить `git status` и `git diff`
|
||||
2. Сформировать коммит по формату
|
||||
3. Не коммитить без явной просьбы пользователя
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
name: git-safety
|
||||
description: "Правила безопасности git"
|
||||
---
|
||||
|
||||
# /git-safety — Безопасность git
|
||||
|
||||
- **Никогда** не пушить в `master`, `main`, `develop`
|
||||
- Работать в `feature/MBL-<N>` или `hotfix/MBL-<N>`
|
||||
- Git-команды выполнять в сервисном репозитории, не в корне workspace
|
||||
- Проверять `git status` и `git diff` перед коммитом
|
||||
- Не коммитить .env, credentials, secrets
|
||||
- Использовать `.env.example` как шаблон для секретов
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: implement
|
||||
description: "Реализация по плану через разработчика → ревьюера → QA"
|
||||
---
|
||||
|
||||
# /implement — Реализация по плану
|
||||
|
||||
## Процесс
|
||||
|
||||
Для каждого шага из `plans/<task-id>-<date>.md`:
|
||||
|
||||
1. **Dev** — разработчик реализует шаг
|
||||
2. **Reviewer** — `ml-agent-reviewer` проверяет код
|
||||
3. **QA** — `ml-agent-qa` ищет edge cases
|
||||
4. **Повторять** пока reviewer и QA не подтвердят
|
||||
|
||||
## Завершение
|
||||
|
||||
- Переключить статус плана на **Готово**
|
||||
- Вызвать `/git-commit` для фиксации изменений
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
name: library-release
|
||||
description: "Bump версий пакетов и зависимостей"
|
||||
---
|
||||
|
||||
# /library-release — Bump версий библиотек
|
||||
|
||||
## Процесс
|
||||
|
||||
1. Изменить код пакета в `libs/backend/<package>/`
|
||||
2. Бампить версию в `.csproj` (`<Version>`)
|
||||
3. Создать MR → merge в `master`
|
||||
4. GitLab CI публикует пакет в NuGet
|
||||
5. Обновить `<PackageReference>` во всех потребителях
|
||||
|
||||
## Порядок
|
||||
|
||||
Топологический: зависимости → потребители
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
name: ml-backend-developer
|
||||
description: "Режим .NET backend-разработчика"
|
||||
---
|
||||
|
||||
# /ml-backend-developer — Backend-разработка
|
||||
|
||||
Ты — .NET backend-разработчик МПШ.Логистика.
|
||||
|
||||
## Стек
|
||||
|
||||
- .NET 10, ASP.NET Core
|
||||
- PostgreSQL, EF Core
|
||||
- Redis
|
||||
- Hangfire
|
||||
- MassTransit + RabbitMQ
|
||||
- Autofac
|
||||
- OpenTelemetry, NLog → Elasticsearch
|
||||
|
||||
## Конвенции
|
||||
|
||||
- Слои: `Instance` → `BusinessLogic` → `Database` → `Models`/`Core`
|
||||
- Acceptance tests в `*.Acceptance.Tests`
|
||||
- Миграции через `dotnet ef migrations add`
|
||||
- Nullable reference types включены
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
name: ml-frontend-developer
|
||||
description: "Режим React/TypeScript frontend-разработчика"
|
||||
---
|
||||
|
||||
# /ml-frontend-developer — Frontend-разработка
|
||||
|
||||
Ты — React/TypeScript frontend-разработчик МПШ.Логистика.
|
||||
|
||||
## Стек
|
||||
|
||||
- React 18, TypeScript
|
||||
- react-query, react-router-dom 6
|
||||
- axios
|
||||
- SCSS modules
|
||||
- @siburkit/* UI-kit
|
||||
|
||||
## Конвенции
|
||||
|
||||
- Компоненты в `src/components/`
|
||||
- API-клиенты в `src/api/`
|
||||
- ESLint: `@sibur/eslint-config`, Prettier: `@sibur/prettier-config`
|
||||
- Без `any`
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
name: plan
|
||||
description: "Детальный план реализации через исследование → архитектора"
|
||||
---
|
||||
|
||||
# /plan — Создать план реализации
|
||||
|
||||
## Процесс
|
||||
|
||||
1. **Исследование** — прочитать spec-файл задачи
|
||||
2. **Архитектор** — вызвать `ml-agent-architect` для разработки плана
|
||||
3. **Запись** — сохранить в `plans/<task-id>-<date>.md`
|
||||
|
||||
## Формат
|
||||
|
||||
```markdown
|
||||
# <task-id> — План реализации
|
||||
|
||||
**Статус:** Активен
|
||||
|
||||
## Шаги
|
||||
|
||||
- [ ] 1. ...
|
||||
- [ ] 2. ...
|
||||
|
||||
## Затрагиваемые сервисы
|
||||
|
||||
- `backend/...` — описание изменений
|
||||
- `frontend/...` — описание изменений
|
||||
```
|
||||
|
||||
## Правила
|
||||
|
||||
- Статус переключается на «Готово» после `/implement`
|
||||
- Минимальный scope изменений
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: spec
|
||||
description: "Формирование ТЗ через исследование кода и диалог с аналитиком"
|
||||
---
|
||||
|
||||
# /spec — Создать ТЗ по задаче
|
||||
|
||||
## Процесс
|
||||
|
||||
1. **Исследование** — вызвать `ml-agent-researcher` для изучения кодовой базы (readonly)
|
||||
2. **Диалог** — уточнить требования у пользователя
|
||||
3. **Анализ** — вызвать `ml-agent-analyst` для формирования структуры ТЗ
|
||||
4. **Запись** — сохранить в `specs/<task-id>-<date>.md`
|
||||
|
||||
## Формат
|
||||
|
||||
```markdown
|
||||
# <task-id> — <название>
|
||||
|
||||
**Статус:** Активен
|
||||
|
||||
## Описание
|
||||
|
||||
...
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] ...
|
||||
```
|
||||
|
||||
## Правила
|
||||
|
||||
- Всегда указывать **Статус:** в начале файла
|
||||
- ТЗ сохраняется в корневые `specs/` или в `backend/specs/` / `frontend/specs/`
|
||||
- Формат имени: `<task-id>-<YYYY-MM-DD>.md`
|
||||
- Если task-id не указан — спросить
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
name: status
|
||||
description: "Обзор активных specs/plans"
|
||||
---
|
||||
|
||||
# /status — Обзор задач
|
||||
|
||||
## Что показывает
|
||||
|
||||
- Активные spec-файлы (`**/specs/*.md` без Статус: Готово)
|
||||
- Активные plan-файлы (`**/plans/*.md` без Статус: Готово)
|
||||
- Счётчик завершённых задач (Статус: Готово)
|
||||
Reference in New Issue
Block a user