docs(opus): раунд 3 — фокус переведён на сам провайдер (устойчивость/корректность)

Жёсткий бюджет ради токенов: ≤10 файлов, ≤5 находок по ≤3 строки, плюс одна строка
«что проверяемо только замером». M6 снят, модификаторы — фон. Границы: ядро, resources_core,
шаблоны/хелперы генератора. В журнал добавлены крит-мнение по раунду 2 и текст раунда 3.
This commit is contained in:
Repinoid
2026-09-30 20:11:24 +03:00
parent e1e45423fa
commit e46bc35b98
2 changed files with 161 additions and 8 deletions
@@ -0,0 +1,59 @@
# Промпт для Opus 4.8 — РАУНД 3: сам провайдер (устойчивость и корректность)
> Продолжение диалога. Раунды 1–2 — `HISTORY/OPUS/2026-09-30_provider_architecture_modifiers_dialog.md`.
> Режим и формат ответа — как раньше: сжато, тезисы, `файл:строка`, без догадок.
---
## Вводная (смена приоритета)
Модификаторы (`nubes_vc_org_ip_allocation`, `nubes_vc_nsxt_snat`) — новая, возможно сложная, но
**НЕБОЛЬШАЯ** часть сервиса. Чрезмерный упор на них не нужен.
**Главное — САМ провайдер: его устойчивость и корректность.**
- `M6` (доступ к двум файлам для доразбора R1) — **снять**; углубление по модификаторам больше не требуется.
- Прошлые находки (`S1`, `S2`, `R2`–`R6`, `U1`–`U3`) **не повторять**.
## Бюджет (жёстко — экономим токены)
- Прочитать **не более 10 файлов** суммарно. Ранее прочитанные повторно не открывать.
- Ответ — **не более 5 находок**, каждая **не более 3 строк**.
- Никаких вступлений, повторения прошлых отчётов, «а ещё могу».
## Что анализировать (провайдер целиком)
1. **Жизненный цикл инстанс-ресурса:** `create` / adopt / `suspend` / resume / `modify` / redeploy /
`delete` и повторный `apply` — где теряется корректность состояния.
2. **Досылка и нормализация параметров** (`WithDefaults`, zero-value fallback, дефолты `map-fixed`,
регистр UUID): где риск затереть значение или получить ложный diff.
3. **`Read` / refresh:** устойчив ли state у генерируемых ресурсов; где возможен вечный diff.
4. **Устойчивость ядра:** ретраи и ошибки, `LockInstance`, идемпотентность, поведение при дубликатах
и параллельных `apply`.
5. **Генератор → код:** какие классы дефектов порождает шаблон.
## Границы доступа
Разрешено читать (только это):
- `provider/internal/core/**`
- `provider/internal/resources_core/**`
- `provider/internal/provider/provider.go`
- `TOOLS/resource-generator/internal/templates/**`
- `TOOLS/resource-generator/internal/params/params.go`
- `TOOLS/resource-generator/internal/helpers/helpers.go`
- `TOOLS/resource-generator/internal/loader/loader.go`
- `TOOLS/resource-generator/internal/writers/writers.go`
Запрещено: `HISTORY/**`, `NOTES/**`, `docs/**`, `HAR/**`, `TMP/**`, `DEV_STAND/**`, `TEST_STAND/**`,
`PROD_STAND/**`, git-история. Нужен файл вне списка → вопрос мне, не чтение.
## Формат ответа
- **ТОП-5 находок** по убыванию критичности: суть → место (`файл:строка`) → последствие (≤ 3 строк).
- Затем **одна строка**: что из этого проверяемо только замером (прогон `apply`/`plan`), а не чтением.
- Находок меньше пяти — столько, сколько есть. Водой не добивать.
## Стоп-правило
Не хватает файла или данных — один короткий вопрос. Не догадываться.