From 2ae06e0534a529b9dfc500ebddf274446e4b97a4 Mon Sep 17 00:00:00 2001 From: estorozhenko Date: Sun, 6 Sep 2026 12:16:22 +0000 Subject: [PATCH] local-extractor: README, gitverse remote, trafilatura local mode --- README.md | 67 +++++++++++++++++++++++ openspec/changes/local-extractor/tasks.md | 2 +- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f81765b --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# OpenSpec Lab — spec-driven для инфраструктуры + +Песочница OpenSpec (Fission-AI, CLI 1.12.0) для практики spec-driven development +на задачах настройки инфраструктуры Hermes и homelab. + +## Зачем + +OpenSpec даёт формальный цикл «согласовали ЧТО → делаем КАК → проверяем → архивируем»: + +1. `proposal.md` — зачем менять +2. `specs//spec.md` — дельта требований (ADDED/MODIFIED/REMOVED) с GIVEN/WHEN/THEN +3. `design.md` — как именно (файлы, команды, rollback, риски) +4. `tasks.md` — чеклист применения + +После `openspec archive` дельта вливается в `openspec/specs/` (источник истины), а +change уходит в `openspec/changes/archive/` с датой. + +## Команды + +```bash +# Новый change +openspec new change "short-name" +# Статус / валидация +openspec status --change short-name +openspec validate short-name +# Завершение +openspec archive short-name --yes +``` + +## Hermes-скиллы + +`openspec init --tools hermes` сгенерировал скиллы в `.hermes/skills/openspec-*`. +В `~/.hermes/config.yaml` (Hermes-профиль) подключены через: + +```yaml +skills: + external_dirs: + - /opt/hermes/openspec-lab/.hermes/skills +``` + +## Реальные changes + +| Change | Статус | Что | +|---|---|---| +| `add-vpn-tunnel-proxy` | заархивирован | Спека постоянного SOCKS5-туннеля до VPS01 | +| `tavily-proxy-setup` | заархивирован | Tavily extract через локальный прокси (гео-обход), e2e работает | +| `local-extractor` | открыт (4/4 артефакта, тесты сетевые отложены) | Локальная экстракция trafilatura, Tavily-совместимый интерфейс | + +## Git / gitverse + +Источник истины — gitverse.ru (зеркало gitea на bigbox). + +```bash +git remote -v # origin → https://estorozhenko:@gitverse.ru/estorozhenko/openspec-lab.git +# Создать репозиторий на gitverse (UI/API), затем: +git push -u origin main +``` + +Токен (PAT) хранится в obsidian: `homelab/gitverse.ru.md` и +`homelab/gitea.nixg.ru/Токен для gitverse.ru.md`. + +## Стек (окружение bigbox) + +- OpenSpec CLI: `npm install -g @fission-ai/openspec` (node 22) +- Hermes-профиль: `/opt/hermes/.hermes` +- Прокси-скрипты: `/opt/hermes/.hermes/scripts/` +- Tavily-прокси: systemd `tavily-proxy.service` (порт 8971, через SOCKS5-туннель) \ No newline at end of file diff --git a/openspec/changes/local-extractor/tasks.md b/openspec/changes/local-extractor/tasks.md index 4cd9bc6..8133b53 100644 --- a/openspec/changes/local-extractor/tasks.md +++ b/openspec/changes/local-extractor/tasks.md @@ -16,4 +16,4 @@ - [x] 3.2 Проверка: сервис active, POST /extract → 200, контент Example Domain получен через провайдер ## 4. Документация (OpenSpec) -- [ ] 4.1 Прописать local-режим и переключение в README проекта (когда проект будет в gitverse) \ No newline at end of file +- [x] 4.1 README openspec-lab: цикл, команды, таблица changes, подключение gitverse \ No newline at end of file