verstak/docs/07_AI_Coder_Prompts.md

305 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Верстак — промпты для ИИ-кодера
## Постоянный контекст для ИИ-кодера
```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 <url> --api-key <key> --target <path>`.
Проверять:
- missing files;
- orphan files;
- SQLite references;
- hash mismatch;
- sync state.
```