128 lines
4.4 KiB
YAML
128 lines
4.4 KiB
YAML
# Шаблон проекта — машиночитаемое описание
|
|
# Формат: YAML
|
|
# Используется CI/CD, генераторами и ИИ-ассистентами для понимания структуры
|
|
|
|
template:
|
|
version: "1.0.0"
|
|
description: "Универсальный шаблон для старта любых проектов"
|
|
|
|
defaults:
|
|
language: python
|
|
python_version: "3.12"
|
|
database: sqlite
|
|
async_framework: fastapi
|
|
orm: sqlalchemy
|
|
frontend: react
|
|
frontend_build: vite
|
|
styling: tailwind
|
|
testing: pytest
|
|
|
|
architecture:
|
|
layers:
|
|
- name: api
|
|
depends_on: [services]
|
|
description: "HTTP роуты, Pydantic валидация, OpenAPI документация"
|
|
- name: services
|
|
depends_on: [integrations, data]
|
|
description: "Бизнес-логика, оркестрация"
|
|
- name: integrations
|
|
depends_on: [data]
|
|
description: "Внешние API, AI провайдеры, fallback chain"
|
|
- name: tasks
|
|
depends_on: [services, integrations]
|
|
description: "Фоновые задачи (Celery или прямой вызов)"
|
|
- name: agents
|
|
depends_on: [services, integrations]
|
|
description: "Системные агенты (саморазвитие проекта)"
|
|
- name: data
|
|
depends_on: [core]
|
|
description: "Модели БД, репозитории, миграции"
|
|
- name: core
|
|
description: "Config, base classes, security, dependencies"
|
|
|
|
layers_frontend:
|
|
- name: pages
|
|
depends_on: [components]
|
|
- name: components
|
|
depends_on: [api, auth]
|
|
- name: api
|
|
description: "HTTP-клиент к backend"
|
|
- name: auth
|
|
description: "JWT токены, AuthContext"
|
|
|
|
agents:
|
|
core:
|
|
- name: DocAgent
|
|
description: "Пишет документацию параллельно с кодом"
|
|
version: "1.0.0"
|
|
triggers: [pre_commit, manual]
|
|
- name: AuditAgent
|
|
description: "Проверяет каждый коммит на соответствие правилам"
|
|
version: "1.0.0"
|
|
triggers: [pre_commit, manual]
|
|
- name: EvolutionAgent
|
|
description: "Версионирует агентов, управляет их развитием"
|
|
version: "1.0.0"
|
|
triggers: [cron, manual, event]
|
|
- name: SupervisorAgent
|
|
description: "Следит за всеми агентами, их здоровьем и версиями"
|
|
version: "1.0.0"
|
|
triggers: [cron, event, manual]
|
|
optional:
|
|
- name: QATesterAgent
|
|
when: "tests_exist"
|
|
- name: FixAgent
|
|
when: "first_bug"
|
|
- name: BacklogAgent
|
|
when: "tech_debt_exists"
|
|
- name: SecurityAgent
|
|
when: "pre_production"
|
|
- name: SpecAgent
|
|
when: "pre_release"
|
|
- name: RolloutAgent
|
|
when: "pre_deploy"
|
|
- name: ObserverAgent
|
|
when: "post_launch"
|
|
- name: UITestAgent
|
|
when: "ui_exists"
|
|
|
|
triggers:
|
|
- name: pre_commit
|
|
description: "Запускается при каждом коммите"
|
|
- name: push
|
|
description: "Запускается при пуше в remote"
|
|
- name: tag_creation
|
|
description: "Запускается при создании git-тега"
|
|
- name: cron
|
|
description: "Запускается по расписанию (daily/hourly)"
|
|
- name: manual
|
|
description: "Запускается вручную из админ-панели"
|
|
- name: api
|
|
description: "Запускается через API-вызов"
|
|
- name: event
|
|
description: "Запускается при возникновении события"
|
|
|
|
conventions:
|
|
naming:
|
|
classes: PascalCase
|
|
functions: snake_case
|
|
constants: UPPER_SNAKE_case
|
|
files: snake_case
|
|
env_vars: UPPER_SNAKE_case
|
|
db_tables: snake_case
|
|
db_indexes: "ix_tablename_column"
|
|
db_unique: "uq_tablename_column"
|
|
git_branches: "feature/*, hotfix/*, release/*"
|
|
imports:
|
|
style: "absolute"
|
|
order: ["stdlib", "third_party", "local"]
|
|
formatting:
|
|
python_line_length: 88
|
|
js_line_length: 100
|
|
quote_style: "double для данных, single для docstrings"
|
|
docstrings: "google-style"
|
|
|
|
rules_ref: "docs/00-rules.md"
|
|
decisions_ref: "docs/decisions/"
|
|
checklists_ref: "docs/checklists/"
|