mirror of
https://gitverse.ru/kpa39l/openspec-lab.git
synced 2026-09-29 09:15:01 +00:00
docs: лаба закрыта как рабочий каталог — OpenSpec разнесён по проектам
This commit is contained in:
@@ -1,67 +1,55 @@
|
||||
# OpenSpec Lab — spec-driven для инфраструктуры
|
||||
# OpenSpec Lab — песочница (устаревшая роль)
|
||||
|
||||
> **Статус: 2026-09-11 — лаба ЗАКРЫТА как рабочий каталог.**
|
||||
> OpenSpec теперь живёт **в каждом проекте** (`/opt/<project>/openspec/`).
|
||||
> Этот каталог остаётся как история/песочница и не используется для новых changes.
|
||||
|
||||
## Зачем была
|
||||
|
||||
Песочница OpenSpec (Fission-AI, CLI 1.12.0) для практики spec-driven development
|
||||
на задачах настройки инфраструктуры Hermes и homelab.
|
||||
|
||||
## Зачем
|
||||
## Новая модель (per-project)
|
||||
|
||||
OpenSpec даёт формальный цикл «согласовали ЧТО → делаем КАК → проверяем → архивируем»:
|
||||
Каждый проект имеет собственный `openspec/` + `.hermes/skills/openspec-*`:
|
||||
|
||||
1. `proposal.md` — зачем менять
|
||||
2. `specs/<cap>/spec.md` — дельта требований (ADDED/MODIFIED/REMOVED) с GIVEN/WHEN/THEN
|
||||
3. `design.md` — как именно (файлы, команды, rollback, риски)
|
||||
4. `tasks.md` — чеклист применения
|
||||
| Проект | Что описано |
|
||||
|---|---|
|
||||
| `/opt/hermes/email-assistant` | email storage, calendar/vikunja (активный change) |
|
||||
| `/opt/monitoring` | grafana access, vinograd monitoring |
|
||||
| `/opt/infrastructure` | tunnel-proxy (SOCKS5) |
|
||||
| `/opt/icq` | prosody/icq services (активный change) |
|
||||
| `/opt/vesti`, `/opt/dedinit.ru`, `/opt/gotosocial` | свои проекты |
|
||||
|
||||
После `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-профиль) подключены через:
|
||||
Скиллы подключены через `~/.hermes/config.yaml`:
|
||||
|
||||
```yaml
|
||||
skills:
|
||||
external_dirs:
|
||||
- /opt/hermes/openspec-lab/.hermes/skills
|
||||
- /opt/hermes/email-assistant/.hermes/skills
|
||||
- /opt/monitoring/.hermes/skills
|
||||
- /opt/infrastructure/.hermes/skills
|
||||
- /opt/icq/.hermes/skills
|
||||
- /opt/vesti/.hermes/skills
|
||||
- /opt/gotosocial/.hermes/skills
|
||||
- /opt/dedinit.ru/.hermes/skills
|
||||
```
|
||||
|
||||
## Реальные changes
|
||||
## Команды (в каждом проекте)
|
||||
|
||||
| Change | Статус | Что |
|
||||
|---|---|---|
|
||||
| `add-vpn-tunnel-proxy` | заархивирован | Спека постоянного SOCKS5-туннеля до VPS01 |
|
||||
| `tavily-proxy-setup` | заархивирован | Tavily extract через локальный прокси (гео-обход), e2e работает |
|
||||
| `local-extractor` | открыт (4/4 артефакта, тесты сетевые отложены) | Локальная экстракция trafilatura, Tavily-совместимый интерфейс |
|
||||
```bash
|
||||
cd /opt/<project>
|
||||
openspec new change "short-name" # новый change
|
||||
openspec status --change short-name # артефакты
|
||||
openspec validate <name> # проверка
|
||||
openspec archive <name> --yes # слияние в openspec/specs/ + архив
|
||||
```
|
||||
|
||||
## Архив
|
||||
|
||||
- Перенесённые changes живут в `openspec/changes/archive/` каждого проекта.
|
||||
- Старые изменения лабы (исторические) сохранены в git-истории этого репозитория.
|
||||
|
||||
## Git / gitverse
|
||||
|
||||
Источник истины — gitverse.ru (зеркало gitea на bigbox).
|
||||
|
||||
```bash
|
||||
git remote -v # origin → https://estorozhenko:<TOKEN>@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-туннель)
|
||||
Источник истины — gitverse.ru (origin этого репо): https://gitverse.ru/kpa39l/openspec-lab.git
|
||||
Reference in New Issue
Block a user