diff --git a/HISTORY/README.md b/HISTORY/README.md new file mode 100644 index 0000000..db8f6fd --- /dev/null +++ b/HISTORY/README.md @@ -0,0 +1,187 @@ +# HISTORY — журнал изменений провайдера, стендов и инфраструктуры + +Здесь лежат **записи о том, что и почему менялось**: разборы багов, релизы, эксперименты, +диалоги с LLM-ревьюерами. Назначение — чтобы по документации можно было восстановить +**всю историю изменений**, включая собственные ошибки. + +> ⛔ **Приказ владельца: документировать АБСОЛЮТНО ВСЁ — включая свои ошибки.** +> Запись делается в файл в этом каталоге, а не в память ассистента. + +## Структура + +| Папка | О чём | Файлов | +|---|---|---| +| [`10_reviews/`](10_reviews/) | Ревью кода и разборы от LLM-ревьюеров | 2 | +| [`20_releases/`](20_releases/) | Заливки версий в реестр, чистки реестра, нумерация версий | 8 | +| [`30_provider/`](30_provider/) | Ядро провайдера: архитектура, модификаторы, UUID, nested-атрибуты | 6 | +| [`40_generator/`](40_generator/) | Генератор YAML/спеки, формат MAN, dev-генератор | 3 | +| [`50_docs/`](50_docs/) | Документация: пайплайн сборки, навигация, ссылки, публикация, хостинг | 9 | +| [`60_stands/`](60_stands/) | Стенды и примеры: CRUD, FullPipe, Штурвал, TEST_STAND | 7 | +| [`70_infra/`](70_infra/) | Инфраструктура: реестр, API Gateway, DDoS-Guard, VPN/213, зеркала | 4 | +| [`90_llm/`](90_llm/) | Диалоги и промпты с LLM, не привязанные к одной теме | 36 | +| Итого | | **75** | + +### Соглашения + +- **Имя файла записи:** `YYYY-MM-DD_<краткая_тема>.md` (латиница, змеиный регистр). + Для старых диалогов с LLM, которые шли без даты (`3006_*`, `0107.md`), исторические имена + **не переименовывались** — чтобы не рвать ссылки в уже написанных документах. +- **Нумерация папок** — как в [`../NOTES/`](../NOTES/): `10_`, `20_`, … Шаг 10 оставлен + для вставки новых тем между существующими. +- **Куда писать новую запись:** в папку своей темы. Если темы нет — завести новую папку + со следующим свободным номером и **дописать её в таблицу выше** и в раздел ниже. +- **Диалоги/брифинги для LLM** — в `90_llm/<модель>/`: пары «бриф → ответ» держим вместе, + поэтому авторские подпапки не растворяются по темам. +- **Файл = один эпизод.** Ссылки на смежные записи — в разделе «Связанные документы» внизу файла. + +--- + +## 10_reviews — ревью кода + +| Файл | Тема | +|---|---| +| `10-code-review-sonnet.md` | Code Review (Sonnet) + список исправлений, структура проекта | +| `2026-08-31_opus_code_review.md` | Code Review провайдера от Opus | + +## 20_releases — релизы и реестр + +| Файл | Тема | +|---|---| +| `2026-09-03_reversion_cleanup.md` | Чистка реестра + новая нумерация версий + баг dev | +| `2026-09-30_dev_registry_prune_versions.md` | Очистка dev-реестра: удалены версии провайдера старше 2.0.21 | +| `2026-09-30_dev_release_2_0_1.md` | Релиз dev-провайдера 2.0.1 | +| `2026-09-30_release_1_0_0_2_0_0_3_0_0_all_stands.md` | Первая перезаливка всех трёх стендов под версии 1.0.0 / 2.0.0 / 3.0.0 | +| `2026-10-01_release_keep_on_destroy_subresources.md` | Заливка во все стенды с фичей `keep_on_destroy` у подресурсов | +| `2026-10-01_release_subresource_password_output.md` | Заливка с выходом `password` у подресурсов | +| `2026-10-01_release_password_unknown_fix.md` | Перезаливка после фикса `unknown password` | +| `2026-10-01_release_x_0_0_all_stands.md` | Перезаливка 1.0.0 / 2.0.0 / 3.0.0 (актуальные номера) | + +## 30_provider — ядро провайдера + +| Файл | Тема | +|---|---| +| `2026-07-06_architectural_refactoring.md` | Архитектурный рефакторинг `tf_provider` | +| `2026-07-16_nested_provider_test_success.md` | Успешный тест nested-провайдера (5.1.2) | +| `2026-07-16_subparams_nested_terraform_attributes.md` | `SubParams`: переход map-fixed → nested Terraform-атрибуты | +| `2026-09-21_fullpipe_vdc_nsxt_and_refsvc_fixes.md` | Серия фиксов генератора и провайдера по FullPipe (vDC + Edge) | +| `2026-09-30_core_and_modifiers_remediation.md` | Правки ядра и модификаторов по итогам анализа | +| `2026-09-30_uuid_case_normalization_on_create.md` | Регистр UUID: нормализация на отправке в API (create/modify/read/delete) | + +## 40_generator — генератор YAML/спеки + +| Файл | Тема | +|---|---| +| `2026-08-10_man_format_fix.md` | Фикс формата MAN | +| `2026-09-03_dev_generator_nested_schema_plan.md` | Баг dev-генератора: рассинхрон nested-параметра | +| `2026-09-30_yaml_pipeline_hardening.md` | Ужесточение пайплайна генерации YAML (безопасная замена вместо удаления) | + +## 50_docs — документация и её публикация + +| Файл | Тема | +|---|---| +| `2026-08-31_registry_getting_started_url_fix.md` | Фикс URL в Getting Started реестра | +| `2026-09-02_full_docs_pipeline_analysis.md` | Анализ полного pipeline документации и публикации | +| `2026-09-03_cross_stand_links_fix.md` | Фикс публикации кросс-стендовых ссылок | +| `2026-09-03_cross_stand_links_on_indexes.md` | Кросс-стендовые ссылки на индексных страницах | +| `2026-09-03_current-stand-in-index.md` | Текущий стенд на индексной странице документации | +| `2026-09-03_docs_hardcodes_removed_and_dev_published.md` | Устранение хардкодов документации + публикация DEV | +| `2026-09-03_docs_upload_pipeline_verified.md` | Проверенный pipeline публикации документации | +| `2026-09-03_test_prod_docs_published.md` | Публикация документации TEST и PROD | +| `2026-10-02_s3_static_website_docs_hosting.md` | Хостинг документации: S3 static website на RGW — находки и версии развития (V0→V1→V2) | + +## 60_stands — стенды и примеры + +| Файл | Тема | +|---|---| +| `2026-07-21_crud_stand_three_apps.md` | CRUD-стенд: три приложения (Lucee, Flask, Node.js) + PostgreSQL | +| `2026-08-31_terraform_stands_configuration.md` | Настройка Terraform под разные стенды (dev/test/prod) | +| `2026-09-24_shturval_dev00_adopt_and_freeze_design.md` | Штурвал dev-00: диагностика, adopt, дизайн «freeze on destroy» | +| `2026-09-25_fullpipe_example_shturval_and_docs.md` | Штурвал в примере `fullpipe_chain` + страница документации | +| `2026-09-30_shturval_dev1_delete_npe.md` | `shturval-dev1`: повторное удаление через API не проходит | +| `2026-10-01_test_crud_pg_create_failure.md` | TEST_STAND/CRUD: сбои создания `nubes_postgres.main_pg` | +| `2026-10-01_test_stand_fpipegmail.md` | TEST_STAND/FPipeGmail: копия dev-примера, адаптированная под тест | + +## 70_infra — инфраструктура и окружение + +| Файл | Тема | +|---|---| +| `2026-07-01_ddos_guard_403_and_registry_fix.md` | DDoS-Guard 403 + фикс реестра | +| `2026-07-02_api_gateway_migration.md` | Миграция с deck-api на API Gateway (`lk-api-gateway`) | +| `2026-09-28_vpn-transit-213-vultr.md` | VPN-транзит через ВМ 213 и Vultr | +| `2026-10-01_sync_tf_to_213_mirror.md` | Полное зеркалирование локального `~/TF` на сервер 213 | + +## 90_llm — диалоги и промпты с LLM + +### `90_llm/gemini/` + +| Файл | Тема | +|---|---| +| `prompt_for_gemini_iot_diagram.md` | Промпт для Gemini: диаграмма пайплайна IoT Demo | +| `prompt_for_gemini_iot_diagram_FINAL.md` | Финальная правка того же промпта | + +### `90_llm/OPUS/` + +| Файл | Тема | +|---|---| +| `3006_0_analysis.md` | Анализ Terraform-провайдера для Nubes Cloud (legacy + universal) | +| `3006_0_full_backup.md` | Тот же анализ, полная версия (с трассой чтения и ответами) | +| `3006_0_trace.md` | Трассировка чтения файлов Opus'ом | +| `3006_0_answers.md` | Ответы на 8 дополнительных вопросов (сессия 2) | +| `3006_1_questions.md` | Дополнительные вопросы к Opus 4.8 (расхождение версий и др.) | +| `3006_2_scripts_questions.md` | Вопросы по аудиту генерационных скриптов | +| `3006_2_scripts_analysis.md` | Анализ генерационных скриптов (сессия 2) | +| `2026-07-06_architectural_analysis.md` | Архитектурный анализ `tf_provider` | +| `2026-07-07_opus_answers_duplicate_fix.md` | Стратегия фикса duplicate/exist | +| `2026-07-07_skip_missing_on_delete_bugs.md` | Разбор багов `skip_missing_on_delete` и связанных | +| `2026-07-07_subresource_duplicate_exist_bug.md` | Duplicate/exist при adopt подресурсов | +| `2026-07-07_v5_0_64_fix_plan.md` | План фикса идемпотентности delete + duplicate adopt | +| `2026-09-22_modifier_architecture_project.md` | ⛔ Архитектура модификаторов (полный проект) — ложный путь, отменено 2026-09-24 | +| `2026-09-22_modifier_null_reset_bug.md` | ⛔ Modify-модификатор сбрасывает create-поля в дефолты — ложный путь | +| `2026-09-22_modifier_plan_review.md` | ⛔ Ревью плана редизайна модификаторов — ложный путь | +| `2026-09-22_modifiers_code_review.md` | ⛔ Код-ревью модификаторов — ложный путь | +| `2026-09-30_provider_architecture_modifiers_dialog.md` | Диалог Opus 4.8: архитектура провайдера и ресурсов-модификаторов | + +> ⛔ **Четыре файла от 2026-09-22 помечены «ложный путь»** — подход к модификаторам отменён +> 2026-09-24. Они оставлены как история: чтобы не повторять ошибочный дизайн. + +### `90_llm/SONNET/` + +| Файл | Тема | +|---|---| +| `0107.md` | Разбор перехода к JSON/200 OK + анализ и план | +| `2026-07-08_find_instance_by_display_name_bug.md` | `FindInstanceByDisplayName`: анализ и дебаг | +| `2026-08-10_docs_ux_analysis.md` | Анализ UX документации Nubes Terraform Provider | +| `2026-08-10_nav_merge_answer.md` | Как смержить nav (статический + динамический) | +| `docs_improvement_briefing.md` | Бриф: анализ и улучшение документации | +| `docs_improvement_answer.md` | Ответ по улучшению документации | +| `docs_improvement_final.md` | Полный диалог по документации и финальный план | +| `docs_prompt_answer.md` | Готовый `SYSTEM_PROMPT` + механизм MAN→группы (ответ) | +| `docs_prompt_full_response.md` | То же, полный ответ | +| `docs_p1_final.md` | Финальный план P1 — `05_generate_docs_llm.py` | +| `docs_p1_approved.md` | Утверждённый план P1 | +| `stages_output_briefing.md` | Бриф: вывод этапов (`stages`) в провайдере | +| `stages_output_plan_final.md` | Финальный план реализации вывода `stages` | +| `stages_testing_question.md` | Тестирование `stages` без реальных инстансов | +| `stages_testing_answer.md` | Ответы по тестированию `stages` | +| `stages_testing_answer_v2.md` | Второй ответ (после исправленного брифа) | +| `stages_testing_answer_deepseek.md` | DeepSeek Flash: ответы по тестированию `stages` | + +--- + +## Известные особенности + +- **`HISTORY/90_llm/OPUS/3006_1.md` и `3006_0.md`** — упоминаются в старых транскриптах + как *предполагавшиеся* имена файлов, реально не создавались. Ссылки оставлены как есть + (историчность важнее «красоты»). +- **`HISTORY/HOWTO-UPLOAD.md`** — в `20_releases/2026-09-03_reversion_cleanup.md` осталась ссылка + на старый внешний репозиторий (`tf_registry/HISTORY/HOWTO-UPLOAD.md`). Актуальный документ — + [`../HOW_TO/HOWTO-UPLOAD.md`](../HOW_TO/HOWTO-UPLOAD.md). +- **Диалоги с LLM не редактируются по фактам**, кроме пометок и обновления путей: это стенограммы. + Итоги и решения из них переносятся в тематические записи (`30_provider/`, `50_docs/`, …). + +## Реорганизация + +- **2026-10-02** — 75 файлов разложены по тематическим папкам (до этого 41 файл лежал в корне + `HISTORY/`, а 34 — в авторских `OPUS/` и `SONNET/`). Все переносы выполнены через `git mv` + (история файлов сохранена), перекрёстные ссылки в репозитории обновлены. + Резервная копия до переноса: `TMP/backup_2026-10-02/HISTORY_before_restructure.tar.gz`.