6.7 KiB
6.7 KiB
Верстак — промпты для ИИ-кодера
Постоянный контекст для ИИ-кодера
Ты работаешь над проектом “Верстак”.
Верстак — 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
Создай 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
Реализуй универсальное дерево 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
Добавь работу с файлами 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-заметки.
Нужно:
- 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
Добавь первый 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
Добавь actions-кнопки.
Типы:
- open_url;
- open_file;
- open_folder;
- run_command.
Нужно:
- actions table;
- action runner;
- confirm_required;
- action log;
- GUI вкладка “Действия”.
Команды запускать через exec.Command с аргументами. Опасные действия — только после confirm.
Prompt 07 — Worklog
Добавь журнал работ.
Нужно:
- worklog_entries table;
- add/edit/delete entry;
- minutes;
- approximate;
- billable;
- GUI вкладка “Журнал”;
- copy report.
Acceptance:
- можно записать “3ч, обновил витрину”;
- можно скопировать отчёт.
Prompt 08 — Search
Добавь 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
Добавь импорт из 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
Создай `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
Добавь 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
Добавь минимальный activity tracking.
Источники:
- opened node;
- edited note;
- added file;
- launched action.
Нужно:
- activity_events table;
- экран “Активность”;
- группировка по делу;
- возможность создать worklog из выбранных событий.
Prompt 13 — File scanner/watcher
Добавь 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
Добавь TUI на Bubble Tea.
Функции:
- tree/search;
- open node;
- add worklog;
- run action;
- sync now.
TUI не должен повторять весь GUI.
Prompt 15 — Integrity/restore
Добавь команды:
- `verstak vault check`;
- `verstak vault repair`;
- `verstak restore --server <url> --api-key <key> --target <path>`.
Проверять:
- missing files;
- orphan files;
- SQLite references;
- hash mismatch;
- sync state.