mirror of
https://gitverse.ru/kpa39l/openspec-lab.git
synced 2026-09-29 09:15:01 +00:00
2.9 KiB
2.9 KiB
PRD — OpenSpec Lab
Цель (обновлено 2026-09-11)
Внедрить spec-driven подход (OpenSpec) для задач настройки инфраструктуры Hermes/homelab.
Лаба выполнила свою роль: цикл «спека → реализация → проверка → архив» отработан и
разнесён по проектам — каждый проект имеет собственный openspec/ + скиллы per-project.
Лаба закрыта как рабочий каталог, остаётся как история/песочница.
Пользователи
- Владелец homelab / Hermes-агент (автономная работа по задачам).
Функциональные требования
- FR1: Цикл propose → apply → archive работает через CLI openspec в каждом проекте.
- FR2: Hermes-скиллы openspec-* подключены per-project (skills.external_dirs → 7 каталогов .hermes/skills/).
- FR3: Каждый проект имеет config.yaml с контекстом СВОЕЙ системы (пути, сервисы, правила).
- FR4: Изменения фиксируются как change-артефакты (proposal/specs/design/tasks) в openspec/ проекта.
- FR5: Архив сливает delta в main specs проекта (
openspec/specs/<capability>/spec.md).
Нефункциональные требования
- NFR1: Всё в /opt/hermes (единый каталог; .hermes — симлинк на /opt/hermes/.hermes).
- NFR2: Изменения системы — только инфраструктурные (systemd, docker), с rollback-инструкцией в design.md.
- NFR3: Лаба не используется для новых changes (закрыта).
- NFR4: Токены/PAT хранятся в obsidian-vault, не в git.
Границы (что НЕ делаем)
- Не переписываем Hermes/его плагины под OpenSpec.
- Не создаём «общей кучи» изменений — каждая спека живёт в своём проекте.
- Не создаём новых облачных зависимостей (локальный экстрактор — приоритет).
Критерии готовности
- G1: ✅ Полный цикл отработан на реальных задачах (архивированы, delta в main specs).
- G2: ✅ OpenSpec разнесён по 7 проектам (4 — перенесены и запушены 2026-09-11; vesti/dedinit/gotosocial — были).
- G3: ✅ Лаба задекларирована закрытой (README/STATUS/WALKTHROUGH обновлены, запушены).
- G4: ⏳ Tavily/local-extractor (инструменты Hermes) — решить размещение (
/opt/hermes/openspec/или история лабы).