docs: 3 стенда (test/dev/prod), приоритет curated-примеров, инцидент генератора nav

This commit is contained in:
Repinoid
2026-10-07 20:33:44 +03:00
parent 382b7b0e9b
commit f1a774d6ef
3 changed files with 139 additions and 97 deletions
+44 -2
View File
@@ -18,6 +18,22 @@
---
## 1.1 Стенды
Ассистент **stand-aware**: `stand` берётся из первого сегмента пути, индекс —
из `VM_DOCS_BASE_URL/<stand>/search/search_index.json`. Включён на всех трёх стендах:
| Стенд | URL | Виджет | Эндпоинт |
|---|---|---|---|
| `nubes-test` | `/nubes-test/` | ✅ | ✅ |
| `nubes-dev` | `/nubes-dev/` | ✅ | ✅ |
| `nubes` (prod) | `/nubes/` | ✅ | ✅ |
Каждый стенд отвечает по **своему** индексу. Кэш индекса/ответов и лимиты
ключуются по стенду.
---
## 2. Архитектура
```
@@ -154,8 +170,11 @@ tf_docs (Node.js, кластер nodejsk8s) [orchestrator.js]
отбрасывание стоп-слов (рус. + англ.).
- **Транслит** (`TRANSLIT` в `search.js`): «постгрес»→`postgres`, «бакет»→`bucket`,
«топик»→`topic` и т.д.
- **Буст по типу страницы**: страница ресурса ×2.0, руководство (`_manual`) ×0.6,
служебная (`curated`/`30_registry`) ×0.4.
- **Буст по типу страницы** (приоритет — «примеры в первую очередь»):
- `curated/*` (готовые примеры, проверенные на реальных деплоях) — **×2.4**;
- страница ресурса — ×2.0;
- руководство (`_manual`) — ×0.6;
- служебная (`30_registry`) — ×0.4.
- **Подресурс → родитель**: `nubes_postgres_database` при поиске дополняется
токеном `postgres` (`resourceBaseSegment`).
- **Предтокенизация**: токены всех 823 документов считаются один раз при загрузке
@@ -283,3 +302,26 @@ tf_docs (Node.js, кластер nodejsk8s) [orchestrator.js]
6. Один под (replicas=1) — лимиты/кэш не шарятся между репликами (принято в брифе 7.4).
7. Задержка доминируется LLM; ускоряется стримингом (SSE) или параллелизацией
этапа 1 с поиском (v2).
---
## 14. Исправленный инцидент: сборка `nubes-dev`
При публикации dev-документации сборка падала на YAML-ошибке nav:
```
- [DEPRECATED] Публичные IP адреса: ← невалидный YAML
```
**Причина:** генератор `TOOLS/docs-generator/internal/writers/writers.go`
(`WriteNavFragment`) писал `ServiceDisplayName` без кавычек. У `vcexternalip` в
dev имя = `[DEPRECATED] Публичные IP адреса` → ломал парсер.
**Фикс (корень):** в генератор добавлен `yamlScalar()` — заголовки с спецсимволами
(`[ ] : # & *` и др.) кавычатся. Затронул все стенды на будущее.
**Разовый обход:** для немедленной публикации dev строка в
`generated/dev/docs/_nav_fragment.yml` закавычена вручную (файл генерируемый,
перезапишется корректно после фикса генератора).
Коммит фикса: `tf_provider` `322235c`.