From 575f1e29a4a88c4b3dc745dacb8976608be6fd64 Mon Sep 17 00:00:00 2001 From: Repinoid Date: Wed, 30 Sep 2026 20:55:05 +0300 Subject: [PATCH] =?UTF-8?q?docs(prompt):=20=D0=BF=D1=80=D0=BE=D0=BC=D0=BF?= =?UTF-8?q?=D1=82=20Opus=20=E2=80=94=20=D0=BA=D0=BE=D0=B4-=D1=80=D0=B5?= =?UTF-8?q?=D0=B2=D1=8C=D1=8E=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BE=D0=BA=20(?= =?UTF-8?q?=D1=80=D0=B0=D1=83=D0=BD=D0=B4=205),=20=D0=BE=D1=82=D0=B2=D0=B5?= =?UTF-8?q?=D1=82=20<=3D=2010=20=D1=81=D1=82=D1=80=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../prompt_for_opus_code_review_round5.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 NOTES/20_prompts/prompt_for_opus_code_review_round5.md diff --git a/NOTES/20_prompts/prompt_for_opus_code_review_round5.md b/NOTES/20_prompts/prompt_for_opus_code_review_round5.md new file mode 100644 index 0000000..09a610f --- /dev/null +++ b/NOTES/20_prompts/prompt_for_opus_code_review_round5.md @@ -0,0 +1,43 @@ +# Opus — код-ревью правок (раунд 5, 2026-09-30) + +**Репо:** `/home/naeel/TF/tf_provider` (Go, Terraform Plugin Framework). Правки уже влиты в `master`, +`go build ./...` и `go test ./internal/... -short` — зелёные. Нужно только ревью. + +## Формат ответа (ЖЁСТКО) + +- **Только дефекты.** По 1 строке: `файл:строка` → что не так → чем грозит. +- **Весь ответ ≤ 10 строк.** Дефектов нет — ответ «ок». +- Без похвал, пересказа, «а ещё можно», без предложений рефакторинга. + +## Что ревьюить (ровно эти коммиты) + +``` +git --no-pager show 383f8ea c5a4499 ea75cac 8519ba0 9da9766 +# или сразу: +git --no-pager diff 047d53a^..9da9766 -- provider/ TOOLS/ +``` + +Файлы: +- `provider/internal/core/http.go` — 401 в `isRetryable` +- `provider/internal/core/modifier_compare.go` — `modifierDesiredEqualsLive`, `modifierValuesEqual`, `modifierCodeMap` +- `provider/internal/core/operation_run_bycode.go` — idempotency pre-check по live +- `provider/internal/core/instance_create.go` — `instanceUid` возвращается вместе с ошибкой +- `provider/internal/resources_core/nsxt_snat_resource.go`, `org_ip_allocation_resource.go` — `ImportState`, `ByIdempotent` +- `TOOLS/resource-generator/internal/templates/instance.go` — partial state в `Create` +- `TOOLS/scripts/check_hardcoded_service_ids.sh` — расширение области/паттернов + +## Вопросы (ответ — по 1 строке на каждый, дефект или «ок») + +1. **Q5 partial state.** `Create`: при `err != nil && id != ""` вызывается `resp.State.Set` с планом, + затем `AddError`. Не нарушает ли это контракт framework (допустим ли partial state при ошибке)? +2. **Live pre-check.** `modifierDesiredEqualsLive` ищет live-значение через `lookupLiveParam` + (ключи `Code`/`SvcOperationCfsParam`/`Name`/`Label`). Достаточно ли этого, чтобы не пропустить + нужный `modify`? +3. **`isRetryable` + 401.** Не создаёт ли ретрай 401 ложных повторов там, где это опасно (GET-пути)? +4. **`ImportState`.** Запись Required-атрибутов в `ImportState` не конфликтует ли с последующим `Read`? +5. Что-то ещё критичное в этих диффах — 1 строка. + +## Границы доступа + +Разрешено: `provider/internal/**`, `TOOLS/**`, `git show`/`git diff` по перечисленным коммитам. +Запрещено: `HISTORY/**`, `NOTES/**`, `docs/**`, `HAR/**`, стенды. Нужен файл вне списка → вопрос.