docs: лаба закрыта как рабочий каталог — OpenSpec разнесён по проектам

This commit is contained in:
estorozhenko
2026-09-11 17:36:46 +00:00
parent b047e3a21d
commit be0c195722
2 changed files with 68 additions and 89 deletions
+30 -39
View File
@@ -1,46 +1,37 @@
# OpenSpec Lab — Статус
Обновлено: 2026-09-08 (сессия: Grafana read-only пользователь)
Обновлено: 2026-09-11 (разнос OpenSpec по проектам)
## Текущее состояние
Лаборатория 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/<svc>/, 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
- [x] change fix-vinograd-dashboard-datasource — ЗААРХИВИРОВАН (2026-09-08): убрана ссылка на встроенный датасорс `__grafana__` в annotations дашборда vinograd-wan (была ошибка "Datasource __grafana__ was not found"). delta → openspec/specs/vinograd-wan-monitoring/spec.md
OpenSpec разнесён по проектам (per-project). Лаба остаётся как история/песочница,
новые changes создаются в `/opt/<project>/openspec/`.
## В работе / Следующие шаги
- (ничего — все задачи закрыты; лаба стабильна)
## Сделано 2026-09-11
- [x] Перенесены архивные changes в проекты:
- `email-storage-analysis` → `/opt/hermes/email-assistant/openspec/`
- `grafana-access-control`, `vinograd-rostelecom-channel-monitoring`,
`fix-vinograd-dashboard-datasource` → `/opt/monitoring/openspec/`
- `add-vpn-tunnel-proxy` → `/opt/infrastructure/openspec/`
- [x] Перенесены активные changes:
- `icq-fix-prosody-network` → `/opt/icq/openspec/`
- `local-calendar-tasks` → `/opt/hermes/email-assistant/openspec/`
- [x] `openspec init --tools hermes` в 4 проектах (скиллы + config.yaml)
- [x] `skills.external_dirs` обновлён в `~/.hermes/config.yaml` (7 проектов)
- [x] Все проекты провалидированы (`openspec validate` — зелёно, warnings косметика)
- [x] Закоммичено и запушено: email-assistant, monitoring, infrastructure, icq
## Осталось
- [ ] `tavily-proxy-setup` / `local-extractor` → куда? (инструменты самого Hermes;
предлагается `/opt/hermes/openspec/` или оставить в истории лабы)
- [ ] Удалить дублирующиеся скиллы из лабы (не подключены, но лежат в `.hermes/skills/`)
- [ ] Проверить, что `hermes skills list` не показывает дубли openspec-* (7 проектов)
## Проверка
## Как запустить / проверить
```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:<TOKEN>@gitverse.ru/kpa39l/openspec-lab.git)
## Открытые вопросы
- (нет)
cd /opt/<project> && openspec validate --specs # зелёно в каждом
hermes config get skills.external_dirs # 7 каталогов
```