architect/templates/project.index.yaml
# Конфигурация структуры проекта
# Используется Claude для определения куда что класть

name: "{project-name}"
type: "{organization|project|solution}"
status: "{planning|development|active|archived}"

# ============================================
# СТРУКТУРА ПРОЕКТА
# ============================================

structure:

  # ------------------------------------------
  # Обязательные файлы (создаются сразу)
  # ------------------------------------------
  required:
    - PROJECT.md      # описание проекта + структура
    - CLAUDE.md       # контекст для AI
    - index.yaml      # этот файл

  # ------------------------------------------
  # Опциональные файлы (создаются при необходимости)
  # ------------------------------------------
  optional:

    INDEX.md:
      create_when: "проект большой, нужна навигация"
      description: "Оглавление и точка входа"

    BUSINESS.md:
      create_when: "тип проекта = organization, нужно описание бизнеса"
      description: "Миссия, видение, направления, бренды"
      required_for: ["organization"]

    README.md:
      create_when: "проект публичный или нужна инструкция для пользователей"
      description: "Описание для внешних пользователей"

  # ------------------------------------------
  # Опциональные папки (создаются при необходимости)
  # ------------------------------------------
  directories:

    data:
      create_when: "есть файлы/данные для обработки"
      description: "Актуальные данные проекта"
      structure:
        sources:
          description: "Входящие от клиента (мастер-файл, прайсы, ТЗ)"
        processed:
          description: "Обработанные данные"
        exports:
          description: "Экспорты для внешних систем"

    archive:
      create_when: "есть черновики или старые версии"
      description: "Старое и временное (для Claude, не для git)"
      structure:
        drafts:
          description: "Черновики документов, рабочие файлы"
          delete_after: "утверждение и создание финальных документов"
        "YYYY-MM-DD_topic":
          description: "Старые версии проекта (при реформации)"
          example: "2026-02-17_reformation"
          delete_after: "через месяц после успешной реформации"

    biz:
      create_when: "развиваем бизнес-направление"
      description: "TYPE: Бизнес (продажи, операции, клиенты)"
      required_files:
        - CLAUDE.md
      structure:
        sales: "продажи, CRM"
        ops: "операции, процессы"
        warehouse: "склад"

    fin:
      create_when: "развиваем финансы"
      description: "TYPE: Финансы (бухгалтерия, налоги, платежи)"
      required_files:
        - CLAUDE.md
      structure:
        accounting: "бухгалтерия, 1С"
        tax: "налоги"
        reporting: "отчётность"

    it:
      create_when: "развиваем IT-направление"
      description: "TYPE: IT (веб, мобильные, API)"
      required_files:
        - CLAUDE.md
        - CACHE.yaml
      structure:
        data: "источники данных IT"
        plan: "планирование IT задач"
        web: "веб-сайты (DIRECTION)"
        mob: "мобильные приложения (DIRECTION)"
        api: "API и интеграции (DIRECTION)"

# ============================================
# ПРАВИЛА ДЛЯ CLAUDE
# ============================================

rules:

  before_creating_file:
    - "Прочитать PROJECT.md и index.yaml"
    - "Проверить нет ли уже такого файла"
    - "Проверить соответствие структуре"
    - "Если нужна новая папка → спросить пользователя"

  before_creating_directory:
    - "Проверить create_when условие"
    - "Создавать только если условие выполнено"
    - "Создать обязательные файлы внутри (required_files)"

  do_not:
    - "НЕ создавать пустые папки 'на всякий случай'"
    - "НЕ создавать дубли (два README, два PROJECT)"
    - "НЕ создавать временные файлы в корне проекта"

  do:
    - "Следовать структуре из index.yaml"
    - "Создавать папки только по необходимости"
    - "Черновики → archive/drafts/"
    - "Данные → data/"
    - "Старое → archive/YYYY-MM-DD/"

# ============================================
# СВЯЗИ
# ============================================

links:
  parent: null  # или путь к родительскому проекту
  related: []   # связанные проекты

# ============================================
# МЕТАДАННЫЕ
# ============================================

created: "{YYYY-MM-DD}"
updated: "{YYYY-MM-DD}"
version: "1.0.0"