From a514282f08273144f1dad220c43622992c90cddb Mon Sep 17 00:00:00 2001 From: Naeel Date: Thu, 12 Mar 2026 08:39:08 +0300 Subject: [PATCH] docs: document AI terraform plan analysis (internal/ai + cmd/sless-plan + provider schema) --- doc/progress.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/doc/progress.md b/doc/progress.md index f9ae568..e649254 100644 --- a/doc/progress.md +++ b/doc/progress.md @@ -230,6 +230,37 @@ | 6 | `replicas` field в FunctionSpec | Низкий (v1.1) | | 7 | RabbitMQ event triggers | Низкий (v2) | | 8 | Метрики → Victoria Metrics | Низкий | +| 9 | `sless-plan` реально не запускает `terraform plan` — нужна интеграция в workflow (docs) | Средний | + +--- + +## 2026-03-12 — AI-анализ terraform plan (ветка feat/ai-terraform-analysis) + +| # | Компонент | Статус | Заметки | +|---|-----------|--------|----------| +| 1 | `internal/ai/provider.go` | ✅ | `LLMProvider` interface + `Config` struct + `NewProvider` фабрика | +| 2 | `internal/ai/google_gemini.go` | ✅ | Gemini REST API через `net/http` (без внешних SDK) | +| 3 | `internal/ai/prompts.go` | ✅ | Системные промпты уровней 1–5, `BuildPrompt`, `LevelName` | +| 4 | `internal/ai/analyzer.go` | ✅ | Оркестратор: `NewAnalyzer`, `Analyze`, `FormatResult`, `truncatePlan(8000)` | +| 5 | `internal/ai/cloud_llm.go` | ✅ | Заглушка для будущего облачного LLM | +| 6 | `cmd/sless-plan/main.go` | ✅ | CLI обёртка над `terraform plan` + AI анализ после | +| 7 | `terraform/provider/internal/provider/provider.go` | ✅ | `ai_hint_level` атрибут (опциональный Int64, default=0) в Schema и Configure | +| 8 | `go build ./internal/ai/... && go build ./cmd/sless-plan/...` | ✅ | BUILD OK на VM | +| 9 | `go build ./...` в terraform/provider/ | ✅ | BUILD OK на VM | +| 10 | Коммит + пуш | ✅ | `d5ce8c2` (ai pkg + cmd) → `582b589` (provider) | + +**Ветка:** `feat/ai-terraform-analysis` +**Последний коммит:** `582b589` + +**Как использовать:** +```hcl +provider "sless" { + endpoint = "https://sless-api.kube5s.ru" + token = var.token + ai_hint_level = 3 # 0=off (default), 1–5 = уровень анализа +} +``` +Затем вместо `terraform plan` использовать `sless-plan` — предоставит анализ от Gemini. ---