docs(prompt): промпт Opus — код-ревью правок (раунд 5), ответ <= 10 строк

This commit is contained in:
Repinoid
2026-09-30 20:55:05 +03:00
parent b3cce5bb70
commit 575f1e29a4
@@ -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/**`, стенды. Нужен файл вне списка → вопрос.