mirror of
https://gitverse.ru/kpa39l/openspec-lab.git
synced 2026-09-29 09:15:01 +00:00
docs: закрытие сессии 2026-09-11 — OpenSpec разнесён по проектам (per-project)
This commit is contained in:
@@ -1,30 +1,34 @@
|
||||
# PRD — OpenSpec Lab
|
||||
|
||||
## Цель
|
||||
Внедрить spec-driven подход (OpenSpec) для задач настройки инфраструктуры Hermes/homelab; собрать рабочий инструмент «спека → реализация → проверка → архив» и применить к реальным задачам пользователя.
|
||||
## Цель (обновлено 2026-09-11)
|
||||
Внедрить spec-driven подход (OpenSpec) для задач настройки инфраструктуры Hermes/homelab.
|
||||
**Лаба выполнила свою роль:** цикл «спека → реализация → проверка → архив» отработан и
|
||||
**разнесён по проектам** — каждый проект имеет собственный `openspec/` + скиллы per-project.
|
||||
Лаба закрыта как рабочий каталог, остаётся как история/песочница.
|
||||
|
||||
## Пользователи
|
||||
- Владелец homelab / Hermes-агент (автономная работа по задачам).
|
||||
|
||||
## Функциональные требования
|
||||
- FR1: Цикл propose → apply → archive работает через CLI openspec.
|
||||
- FR2: Hermes-скиллы openspec-* подключены (skills.external_dirs → .hermes/skills/openspec-*).
|
||||
- FR3: config.yaml содержит инфраструктурный контекст (пути /opt/<svc>/, systemd, docker, gitverse) и rules.
|
||||
- FR4: Готовые изменения фиксируются как change-артефакты (proposal/specs/design/tasks) и архивируются с переносом delta в main specs.
|
||||
- FR5: Реальные задачи пользователя проходят через OpenSpec-цикл (пример: tavily-proxy-setup, local-extractor).
|
||||
- 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: Лабораторные эксперименты не затрагивают прод (например, test-порты 8972/8973, не 8971).
|
||||
- NFR4: open Безопасность: токены/PAT хранятся в obsidian-vault, не в git.
|
||||
- NFR3: Лаба не используется для новых changes (закрыта).
|
||||
- NFR4: Токены/PAT хранятся в obsidian-vault, не в git.
|
||||
|
||||
## Границы (что НЕ делаем)
|
||||
- Не переписываем Hermes/его плагины под OpenSpec.
|
||||
- Не тащим OpenSpec в прод-проекты, пока лаба не покажет ценность.
|
||||
- Не создаём «общей кучи» изменений — каждая спека живёт в своём проекте.
|
||||
- Не создаём новых облачных зависимостей (локальный экстрактор — приоритет).
|
||||
|
||||
## Критерии готовности
|
||||
- G1: Полный цикл хотя бы для 2 реальных задач (архивированы, delta в main specs). ✅ (tavily-proxy-setup + add-vpn-tunnel-proxy)
|
||||
- G2: Локальный экстрактор работает без облака (local-режим, тесты 2.2/2.3 зелёные).
|
||||
- G3: Лаба в gitverse (push сделан, remote живой).
|
||||
- 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/` или история лабы).
|
||||
Reference in New Issue
Block a user