verstak/docs/01_Product_Spec.md

244 lines
7.3 KiB
Markdown
Raw 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.

# Верстак — описание продукта
## 1. Проблема
У пользователя есть много разнородной рабочей информации:
- папка `work` и подпапки;
- архивы нужных файлов;
- служебки;
- договоры;
- письма;
- скриншоты;
- файлы с серийными номерами;
- инструкции;
- статьи по установке;
- скрипты;
- SQL-фрагменты;
- заметки в DokuWiki;
- доступы к серверам и сервисам клиентов;
- записи о нестандартных действиях;
- репозитории личных проектов;
- Godot-проекты;
- локальные утилиты вроде sshkeeper.
Проблема не только в хранении. Проблема в **контексте**:
- что к чему относится;
- где лежит актуальная версия;
- где заметка по клиенту;
- где договор;
- где скрипт;
- что было сделано в прошлый раз;
- сколько примерно времени ушло;
- что можно сказать человеку, когда он спрашивает “сколько должен?”.
Обычные инструменты закрывают только кусок:
- Obsidian — заметки, но не рабочий кабинет с документами, действиями и журналом работ;
- DokuWiki — заметки, но не локальная рабочая оболочка над файлами и программами;
- CRM — клиенты и продажи, но не личная техническая память;
- файловый менеджер — файлы, но без смысла;
- таймтрекер — время, но требует дисциплины;
- лаунчер — запуск, но не память;
- Nextcloud — файлы, но не дела.
## 2. Что такое Верстак
**Верстак** — local-first рабочий vault, где всё организовано вокруг “дел”.
Дело — это контекст, в который складываются заметки, документы, файлы, действия и история работы.
Примеры дерева:
```text
Клиенты
ООО Ромашка
Сайт
Обзор.md
Документы
Скрипты
Скриншоты
Журнал работ
Почта
Договоры
Личные проекты
sshkeeper
Roadmap.md
Releases
dist
Действия
Tyaplyapiya
Godot project
Design notes
Assets
Рецепты
MySQL
Очистка таблиц
Backup dump
Сайты
Backup сайта одной строкой
Очистка кеша WordPress
Документы
Служебки
Договоры
Серийники
```
## 3. Основные сущности
### Дело
Главный рабочий контекст.
Поля:
- название;
- тип: клиент / проект / рецепт / документальная область / архив / личное;
- родитель;
- описание;
- статус: active / sleeping / archived;
- теги;
- связанные ссылки;
- связанные actions;
- журнал работ.
### Заметка
Обычный Markdown-файл внутри vault.
Примеры:
- `overview.md`;
- `nginx.md`;
- `mysql-cleanup.md`;
- `roadmap.md`;
- `access.secret.md`.
### Документ
Файл внутри дела:
- `docx`;
- `xlsx`;
- `pdf`;
- `odt`;
- `png/jpg`;
- `zip`;
- любые другие файлы.
В MVP документы открываются системным приложением. Встроенный preview можно добавить позже.
### Действие
Кнопка, которую можно запустить из дела:
- открыть URL;
- открыть папку;
- открыть файл;
- запустить Godot;
- открыть IDE;
- запустить sshkeeper;
- выполнить скрипт;
- открыть терминал;
- собрать проект.
### Журнал работ
Записи вида:
```text
2026-05-30
Дело: ООО Ромашка / Сайт
Время: примерно 3ч
Описание: обновил витрину сайта, товары, баннеры, проверил отображение.
```
### Активность
Сырые следы:
- открыто дело;
- открыта заметка;
- изменён файл;
- запущено действие;
- открыта папка;
- later: активное окно;
- later: browser URL;
- later: sshkeeper session.
## 4. Основные сценарии
### Клиентская работа
1. Открыть дело клиента.
2. Посмотреть заметки и документы.
3. Открыть админку сайта.
4. Запустить sshkeeper или скрипт.
5. Добавить скриншоты.
6. Записать работу.
7. Сформировать текст отчёта.
### Личный проект
1. Открыть проект `sshkeeper`.
2. Нажать “Открыть IDE”.
3. Нажать “Собрать”.
4. Посмотреть roadmap.
5. Добавить заметку “на чём остановился”.
### Импорт DokuWiki
1. Выбрать `data/pages`.
2. Выбрать `data/media`.
3. Импортировать namespaces как дерево.
4. Сохранить оригиналы.
5. Постепенно разобрать по делам.
### Восстановление времени
Пользователь не нажимал таймер, но вечером видит:
```text
Похоже, ты работал по делу “ООО Ромашка / Сайт”:
14:0517:12, примерно 3ч.
Основания:
- открывалась админка сайта;
- менялся catalog.xlsx;
- запускался sshkeeper profile;
- создавались скриншоты.
[Записать 3ч] [Исправить] [Игнорировать]
```
## 5. Что точно не делать в начале
- не делать SaaS;
- не делать multi-user CRM;
- не делать встроенный офисный пакет;
- не делать полноценный password manager;
- не делать ИИ;
- не делать мобильное приложение;
- не делать сложные права пользователей;
- не делать бухгалтерию;
- не пытаться автоматически понимать всё.
## 6. Уникальность
Верстак отличается тем, что объединяет:
- заметочник;
- файловый кабинет;
- project launcher;
- журнал работ;
- рабочий контекст;
- sync/backup;
- TUI/GUI;
- миграцию из DokuWiki.
Но всё это не как отдельные модули, а вокруг одного понятия: **дело**.