# Верстак — промпты для ИИ-кодера ## Постоянный контекст для ИИ-кодера ```markdown Ты работаешь над проектом “Верстак”. Верстак — local-first рабочий vault для дел, клиентов, проектов, документов, заметок, файлов, действий запуска, журнала работ и синхронизации. Главные принципы: - данные принадлежат пользователю; - заметки и файлы физически лежат обычными файлами в vault; - SQLite хранит индекс, связи, метаданные, FTS и sync state; - основная сущность — вложенное дерево nodes; - GUI, TUI и CLI должны использовать общий core; - бизнес-логику нельзя завязывать на UI; - не делать SaaS; - не делать ИИ; - не делать password manager в MVP; - не удалять файлы физически без trash; - опасные действия требуют подтверждения; - изменения делать маленькими проверяемыми шагами. Стек: - Go; - SQLite; - Wails для GUI; - Bubble Tea для TUI позже; - fsnotify + snapshot scanner позже; - sync server позже. После каждого шага дай: 1. что изменено; 2. как запустить; 3. как проверить; 4. какие файлы затронуты; 5. какие риски остались. ``` ## Prompt 01 — Skeleton ```markdown Создай skeleton проекта “Верстак”. Нужно: - Go module `verstak`; - структура cmd/internal/migrations; - CLI `verstak --version`; - команда `verstak init --vault ./test-vault`; - SQLite connection; - migration runner; - первая миграция. Acceptance: - `go test ./...` проходит; - init создаёт vault и `.verstak/index.db`; - повторный init безопасен. ``` ## Prompt 02 — Nodes ```markdown Реализуй универсальное дерево nodes. Нужно: - tables nodes, node_meta; - struct Node; - repository: Create/Get/ListChildren/UpdateTitle/Move/SoftDelete; - CLI node create/list/move/delete; - unit tests. Правила: - UUID; - deleted_at вместо физического удаления; - безопасный slug. ``` ## Prompt 03 — Vault files ```markdown Добавь работу с файлами vault. Нужно: - `.verstak/trash`; - files table; - VaultService; - copy file into vault; - link external file; - open with system app; - delete-to-trash; - CLI file add/list/open. ``` ## Prompt 04 — Markdown notes ```markdown Добавь Markdown-заметки. Нужно: - notes table; - note node type; - create/read/save note; - `.md` file inside vault; - backup previous version before overwrite; - CLI note create/read/write. ``` ## Prompt 05 — Wails GUI MVP ```markdown Добавь первый Wails GUI. Нужно: - sidebar tree; - main panel; - create node; - create note; - markdown textarea editor; - save note; - file list; - add file; - open file. Главный пользовательский поток: 1. создать дело; 2. создать заметку; 3. сохранить заметку; 4. добавить файл; 5. открыть файл системным приложением. ``` ## Prompt 06 — Actions ```markdown Добавь actions-кнопки. Типы: - open_url; - open_file; - open_folder; - run_command. Нужно: - actions table; - action runner; - confirm_required; - action log; - GUI вкладка “Действия”. Команды запускать через exec.Command с аргументами. Опасные действия — только после confirm. ``` ## Prompt 07 — Worklog ```markdown Добавь журнал работ. Нужно: - worklog_entries table; - add/edit/delete entry; - minutes; - approximate; - billable; - GUI вкладка “Журнал”; - copy report. Acceptance: - можно записать “3ч, обновил витрину”; - можно скопировать отчёт. ``` ## Prompt 08 — Search ```markdown Добавь SQLite FTS5 поиск. Индексировать: - node titles; - note content; - filenames; - worklog summaries; - action titles. Нужно: - `verstak index rebuild`; - GUI search bar; - search results with type/path. ``` ## Prompt 09 — DokuWiki import ```markdown Добавь импорт из DokuWiki. Вход: - path to `data/pages`; - optional path to `data/media`; - target node id. Нужно: - namespaces as folders; - pages as notes; - originals saved in `.verstak/originals/dokuwiki`; - basic conversion or raw import. ``` ## Prompt 10 — Sync server skeleton ```markdown Создай `verstak-server`. Нужно: - HTTP server; - API key auth; - SQLite server db; - GET /health; - POST /sync/push; - POST /sync/pull; - POST /blobs/upload; - GET /blobs/{sha256}; - blob storage by sha256. ``` ## Prompt 11 — Sync client MVP ```markdown Добавь sync client. Нужно: - sync_ops local table; - операции при изменениях; - config server URL + API key; - command `verstak sync`; - push local ops; - pull remote ops; - upload/download blobs; - conflict copy if unsure. ``` ## Prompt 12 — Activity MVP ```markdown Добавь минимальный activity tracking. Источники: - opened node; - edited note; - added file; - launched action. Нужно: - activity_events table; - экран “Активность”; - группировка по делу; - возможность создать worklog из выбранных событий. ``` ## Prompt 13 — File scanner/watcher ```markdown Добавь file scanner и fsnotify watcher. Важно: - scanner — источник правды; - watcher — ускоритель. Нужно: - scan vault tree; - detect new/changed/missing files; - update index; - create activity events; - manual command `verstak scan`. ``` ## Prompt 14 — TUI MVP ```markdown Добавь TUI на Bubble Tea. Функции: - tree/search; - open node; - add worklog; - run action; - sync now. TUI не должен повторять весь GUI. ``` ## Prompt 15 — Integrity/restore ```markdown Добавь команды: - `verstak vault check`; - `verstak vault repair`; - `verstak restore --server --api-key --target `. Проверять: - missing files; - orphan files; - SQLite references; - hash mismatch; - sync state. ```