# Шаблон проекта — машиночитаемое описание # Формат: 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/"