# OpenSpec Lab — Статус Обновлено: 2026-09-08 (сессия: Grafana read-only пользователь) ## Текущее состояние Лаборатория spec-driven подхода (OpenSpec CLI 1.12.0) для задач настройки инфраструктуры Hermes/homelab. Цикл propose→apply→archive работает; **5 change заархивированы**. Tavily-прокси (web_extract) работает end-to-end в forward-режиме (решение по задаче 5: оставить как есть). Локальный экстрактор (trafilatura) написан и протестирован (2.2/2.3 зелёные), change заархивирован. Репозиторий создан на gitverse.ru, main запушен. ICMP-мониторинг канала «Винный город» заархивирован (в /opt/monitoring). Read-only пользователь Grafana (it@vinogorod.ru, Viewer) добавлен через UI — change заархивирован. ## Сделано - [x] OpenSpec CLI установлен (npm, 1.12.0), лаба инициализирована с --tools hermes (6 скиллов) - [x] config.yaml с инфраструктурным контекстом (systemd, docker, /opt//, gitverse) - [x] change tavily-proxy-setup — ЗААРХИВИРОВАН (delta → specs/web-extract-tavily/spec.md) - [x] web_extract работает: Hermes → 8971 → SOCKS5-туннель → Tavily (HTTP 200, контент Example Domain) - [x] change local-extractor — ЗААРХИВИРОВАН: trafilatura 2.2.0, local-режим в tavily_extract_proxy.py, тесты 2.2/2.3 зелёные - [x] Репозиторий создан на gitverse.ru (kpa39l/openspec-lab), git push -u origin main выполнен - [x] systemd tavily-proxy.service — решение по задаче 5: ОСТАВЛЕН forward-режим (облачный Tavily через туннель) - [x] change vinograd-rostelecom-channel-monitoring — ЗААРХИВИРОВАН (2026-09-08): ICMP-мониторинг канала «Винный город» в /opt/monitoring, дашборд Vinograd WAN - [x] change grafana-readonly-user — ЗААРХИВИРОВАН (2026-09-08): read-only пользователь Grafana it@vinogorod.ru (role Viewer, пароль 1qazXSW2), создан вручную в UI (OSS 11.1 не умеет provisioning/API create пользователей). delta → openspec/specs/grafana-access-control/spec.md ## В работе / Следующие шаги - (ничего — все задачи закрыты; лаба стабильна) ## Как запустить / проверить ```bash cd /opt/hermes/openspec-lab openspec validate # все changes openspec status --change local-extractor # локальный экстрактор (тест) ./venv/bin/python .hermes/scripts/tavily_extract_proxy.py --port 8972 --local curl -s -X POST http://127.0.0.1:8972/extract -d '{"urls":["https://example.com"]}' -H 'Content-Type: application/json' # рабочий прокси (systemd) systemctl status tavily-proxy # порт 8971, forward через туннель ``` ## Ключевые артефакты - /opt/hermes/openspec-lab/openspec/specs/web-extract-tavily/spec.md — main spec про forward-прокси - /opt/hermes/openspec-lab/openspec/specs/web-extract-local/spec.md — main spec про local-экстрактор - /opt/hermes/openspec-lab/openspec/specs/vinograd-wan-monitoring/spec.md — ICMP-мониторинг канала - /opt/hermes/openspec-lab/openspec/specs/grafana-access-control/spec.md — read-only пользователь Grafana - /opt/hermes/openspec-lab/openspec/changes/archive/2026-09-08-grafana-readonly-user/ — архивный change - /opt/hermes/.hermes/scripts/tavily_extract_proxy.py — прокси + local-режим - /etc/systemd/system/tavily-proxy.service — юнит (forward, без изменений) - gitverse: https://gitverse.ru/kpa39l/openspec-lab (remote origin: https://kpa39l:@gitverse.ru/kpa39l/openspec-lab.git) ## Открытые вопросы - (нет)