# Prompt для GPT‑5.2‑Codex — анализ и задачи по `terra` провайдеру Цель: дать модели полный контекст репозитория и набор задач для проектирования/реализации managed Terraform provider и ресурсов (особенно: S3 bucket, Edge / nsxt, Redis, DNS zone+record, Grafana tenant). --- ## 1) Короткая инструкция к модели You are GPT‑5.2‑Codex. Study the repository files listed below and perform the tasks described in the "Tasks" section. Answer in Russian. Do NOT modify any existing Go production code without an explicit operator approval (see IMMUTABILITY POLICY in REPO_CONTENTS.md). Do NOT output any secrets or tokens. Provide precise, actionable outputs only (JSON, Terraform snippets, git diffs, test files, PR description). Constraints: - Do not commit secrets or tokens. Indicate placeholder values for secrets. - Respect repository rules: do not change function signatures or existing public APIs without confirmation. - Provide outputs as machine‑parsable artifacts where possible (JSON matrix, unified diffs, files to create). --- ## 2) Файлы для изучения (указать полные пути) - docs/ARCHITECTURE_NEW.md — архитектурный обзор - docs/README.md, docs/index.md — документация / навигация - docs/howitwasdone.md — история решений - docs/ai_universal_provider_gen.md — процесс генерации провайдера (YAML → Go) - universal_rebuild/tools/gen/main.go — генератор (основная логика) - universal_rebuild/internal/resources_gen/* — примеры сгенерированных ресурсов - docs/30_registry/resources/s3bucket.md — S3 bucket schema - docs/30_registry/resources/redis.md — Redis schema - docs/30_registry/resources/vc_nsxt.md — Edge (vc_nsxt) schema - docs/30_registry/resources/vcexternalip.md — внешний IPs и пример полей - docs/30_registry/resources/postgres.md — пример связанного ресурса (для референса) - docs/20_discovery/development-journey.md — как тестировались флоу - docs/70_api/* — API analysis and request/response examples - scripts/package_release.sh — release flow and artifact publishing - tools/upload_provider_s3.py — upload logic for release artifacts - tests/ (especially tests/modify_postgres, tests/lifecycle_scenario) — real terraform snippets and logs - REPO_CONTENTS.md — operational rules and immutability policy --- ## 3) Задачи (приоритетные — выполнить по очереди) 1. Извлечь и вернуть JSON‑матрицу параметров для ресурсов: - S3 bucket (`nubes_s3bucket`) — поля create/outputs - Edge (`nubes_vc_nsxt`) — минимальный набор create/modify полей - Redis (`nubes_redis`) — минимальные параметры - DNS zone (`nubes_dnszone`) & DNS record (`nubes_dnsrecord`) — поля (если нет, предложи именования) - Grafana tenant (tenant / grafana_tenant) — поля Формат: { resource_name: {create: [{name,type,required,default,id}], outputs:[...] } } 2. На основе матрицы сгенерировать модуль Terraform (пример `modules//main.tf`) с минимальными параметрами и README для каждого ресурса. 3. Сгенерировать unit/acceptance тесты (как минимум `terraform plan` checks) и CI шаги (`.github/workflows/validate.yml`) с проверками: `terraform fmt`, `terraform validate`, `terraform plan` (dry-run), go vet/format для Go кода. 4. Выдать unified diff / patch (git format‑patch или git diff) с предлагаемых изменений: новые файлы (modules + tests + ci), пример использования `TERRA_TEST` обновлённый. 5. Подготовить текст PR (title, description, список файлов, rationale, risks, rollback plan) и checklist для code reviewers. 6. Предложить список ручных smoke‑checks, которые оператор должен выполнить перед мёрджем (eg. run `terraform plan` with `TF_VAR_api_token`, check provider build process via `scripts/package_release.sh`). --- ## 4) Формат ответа (ожидается от модели) - 1) Краткое summary (3–5 предложений) — что сделано. - 2) JSON matrix (machine‑readable) с полями ресурсов. - 3) Сгенерированные Terraform файлы (в виде unified diff или содержимого файлов) и README примечания. - 4) Список тестов и CI workflow (YAML) — как patch. - 5) PR description (markdown) + checklist. - 6) В конце — список вопросов/неизвестностей, которые нужно уточнить у оператора. --- ## 5) Доп. инструкции по безопасности и процессу - Никогда не включай реальные токены в ответы. - Не выполнять реальные `apply` в production; предложи инструкции для тестовой среды (use `TERRA_TEST/terraform.tfvars` with placeholders). - Учитывай immutability rules: existing Go production code must not be modified without explicit permission. For generated code — create new files in `universal_rebuild/internal/resources_gen` or `universal_rebuild/tools/gen` output, do not alter core provider internals unless directed. --- ## 6) Пример стартового вопроса к модели "Проанализируй перечисленные файлы, верни JSON‑матрицу параметров для перечисленных ресурсов, затем сгенерируй модули Terraform с минимальными параметрами, подготовь тесты и CI workflow, и выведи единственный unified diff patch, который можно применить в ветке `feature/universal-provider-resources`. Пожалуйста, начинай с матрицы параметров (JSON)." --- Файл подготовил: GitHub Copilot (Raptor mini, но prompt для GPT‑5.2‑Codex).