# AGENTS.md Короткий контракт для работы в репозитории мини-демо DWH кликстрима. ## Цель репозитория Реализовать [тестовое задание DE](./docs/DE-task.md): поднять в `docker compose` стек Kafka + ClickHouse + Airflow + Superset + Prometheus/Grafana и получить витрины для первичного анализа. ## Обязательные правила ### Данные - Не загружать `*.jsonl` целиком без необходимости: по умолчанию использовать малый срез (`head -n 20..50`). - Для демо и тестов важнее быстрый и повторяемый прогон, чем полнота данных. - "Грязные" записи не должны валить пайплайн: ошибки парсинга фиксируются в ODS. ### Изменения в коде - Изменения держать минимальными и в скоупе задания (инфра, ingest, трансформации, витрины, мониторинг). - Не коммитить секреты. Использовать `.env` и `.env.example`. - При изменении инфраструктуры или DDL обновлять документацию в этом же PR. - Комментарии в SQL и Bash писать на русском языке. ### Проверка API через MCP Context7 (обязательно) - Для спорных или меняющихся API (особенно Airflow/operators/providers) сначала уточнять актуальную версию через MCP Context7. - Минимальный порядок: `resolve-library-id` -> `query-docs`. - Принятое решение фиксировать в коде и/или документации (кратко: что проверили и почему выбрали именно этот вариант). ## Навигация по документации - [README.md](./README.md) — пользовательский quick start и обзор. - [docs/REPO_MAP.md](./docs/REPO_MAP.md) — карта исполняемых артефактов и где что менять. - [docs/OPERATIONS.md](./docs/OPERATIONS.md) — запуск, DAG-параметры, проверки и troubleshooting. - [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) — детали по слоям STG/ODS/DDS/DM. - [docs/COMMIT_RULES.md](./docs/COMMIT_RULES.md) — правила оформления коммитов. - [docs/course/](./docs/course/) — продвинутый учебный курс «со звёздочкой» на базе стенда (PRD, план обучения, стандарт уроков); начинать с [docs/course/README.md](./docs/course/README.md). - [plans/](./plans/) — legacy-планы (использовать как исторический контекст, не как источник истины). ## Ограничения по структуре - Новые документы создавать в `docs/` (или в профильных подпапках), не в корне репозитория.