docs: add AGENTS.md with platform architecture rules

This commit is contained in:
mirivlad 2026-06-16 11:53:16 +08:00
parent 65531ec50b
commit 08f7328d87
1 changed files with 93 additions and 0 deletions

93
AGENTS.md Normal file
View File

@ -0,0 +1,93 @@
# AGENTS.md — Verstak Desktop
## Назначение
`verstak-desktop` — Core Platform + UI Shell. Это минимальное ядро, которое запускает приложение, управляет плагинами и предоставляет общий интерфейс. **Core не содержит бизнес-функций пользователя.**
## Главные инварианты
- Core не импортирует official plugins как обязательные модули.
- Core не содержит notes/files/editor/activity/journal как внутренние фичи.
- Все пользовательские функции приходят через динамические плагины.
- Plugin Manager UI — обязательный компонент core с первого этапа.
- Capability registry и contribution registry — механизмы связи, а не жёсткие импорты.
- Плагины не могут обращаться к Wails backend методам напрямую — только через VerstakPluginAPI.
## Технологии
- **Backend:** Go (Wails v2)
- **Frontend:** Svelte (plain JS, без `lang="ts"`)
- **UI Shell:** окно, навигация, command palette, settings, plugin manager, dialogs/toasts
## Что НЕ входит в core
- Markdown editor (это плагин)
- File manager (это плагин)
- Notes workflow (это плагин)
- Activity / journal (это плагины)
- Browser inbox (это плагин)
- Search (это плагин)
- Secrets (это плагин)
- Templates (это плагин)
## Plugin Runtime
1. Discovery — сканирование plugin directories, чтение plugin.json
2. Validation — проверка schemaVersion, apiVersion, обязательных полей
3. State check — enabled/disabled
4. Capability resolution — проверка requires/optionalRequires
5. Permissions — запрос, отображение пользователю
6. Backend sidecar — launch, если нужен
7. Frontend bundle — загрузка, если есть
8. Registration — capabilities и contributions в registry
9. Status — loaded / degraded / failed / incompatible / missing-required-capability
## Структура репозитория
```
verstak-desktop/
AGENTS.md
go.mod
main.go
cmd/
internal/
core/
plugin/
discovery.go
manifest.go
state.go
lifecycle.go
capability/
registry.go
contribution/
registry.go
permissions/
registry.go
events/
bus.go
settings/
registry.go
vault/
api.go
storage/
api.go
diagnostics/
api.go
sync/
boundary.go
shell/
app/
navigation/
window/
command-palette/
plugin-manager/
ui/
settings/
dialogs/
api/
plugin.go
frontend/
src/
wails.json
...
```