Files
xboct-flow/README_ru.md
T
2026-07-18 07:52:01 +05:00

185 lines
6.4 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.
# XBOCTuK Flow
Local-first task management for solo developers and small teams — VS Code
extension.
[English version](README.md)
Задачи хранятся как обычные Markdown-файлы с YAML frontmatter (расширение
`.xflow.md`). Без облака и отдельного сервера: git-friendly, редактируются в
любом редакторе.
## Возможности
- **Sidebar** — дерево Project / Global → статусы → задачи
- **Dashboard** — список + описание задачи (фильтры, scope, sort, group)
- **Kanban** — колонки по статусу, drag-and-drop, create в колонке
- **Команды** — create / open / change status / delete
- **In-editor** — lint frontmatter + status/priority/tags/assignee
- **Теги проекта** — каталог в `config.yml` папки задач
- **Два хранилища** — проектное (в workspace) и глобальное (общая папка на
машине)
### Статусы
`backlog` · `todo` · `in-progress` · `done` · `cancelled`
В Kanban `backlog` и `cancelled` по умолчанию скрыты (кнопка Show hidden).
### Приоритеты
`critical` · `high` · `medium` · `low`
## Требования
- VS Code **^1.96.0**
- Node.js 20+ (для разработки)
## Установка (разработка)
```bash
npm install
npm run build
```
1. Открой папку расширения в VS Code
2. **F5** — Extension Development Host
3. В Host-окне открой workspace, где нужны задачи
Пока расширение **не опубликовано** в Marketplace — только dev / локальный
`.vsix` (см. ниже).
### Локальный `.vsix` (опционально)
```bash
npm run build
npx @vscode/vsce package
```
Установка: Extensions → `...` → Install from VSIX.
## Настройки
Settings → **XBOCTuK Flow** (или JSON). Defaults задаются в `package.json`
(`contributes.configuration`).
| Setting | Описание | Default |
| ------------------------- | -------------------------------------------------------- | -------- |
| `xboctukFlow.projectPath` | Папка проектных задач **относительно** корня workspace | `.xflow` |
| `xboctukFlow.globalPath` | **Абсолютный** путь к глобальным задачам (пусто = выкл.) | `""` |
Файлы задач всегда с расширением **`.xflow.md`**.
Пример:
```json
{
"xboctukFlow.projectPath": ".xflow",
"xboctukFlow.globalPath": "C:\\Users\\You\\Documents\\xboctuk-flow"
}
```
## Команды
Command Palette (`Ctrl+Shift+P` / `Cmd+Shift+P`):
| Команда | Действие |
| ----------------------------------------- | ----------------------------------------------- |
| **XBOCTuK Flow: Create Task** | Создать задачу (scope, если настроены оба path) |
| **XBOCTuK Flow: Open Task** | Открыть `.xflow.md` в editor |
| **XBOCTuK Flow: Change Status** | Сменить статус |
| **XBOCTuK Flow: Edit Status (in file)** | Status во frontmatter через Quick Pick |
| **XBOCTuK Flow: Edit Priority (in file)** | Priority во frontmatter через Quick Pick |
| **XBOCTuK Flow: Delete Task** | Удалить задачу |
| **XBOCTuK Flow: Open Dashboard** | Dashboard (список + body) |
| **XBOCTuK Flow: Open in Dashboard** | Dashboard с выбранной задачей |
| **XBOCTuK Flow: Open Kanban** | Kanban board |
В sidebar: кнопки title (create / dashboard / kanban) и actions на задаче (open
/ edit / status / delete).
Status bar: **Tasks** → Dashboard.
## Формат файла задачи
```markdown
---
id: "550e8400-e29b-41d4-a716-446655440000"
title: "Пофиксить баг логина"
status: todo
priority: high
tags: [bug, frontend]
assignee: ""
created: 2026-07-12T10:00:00.000Z
updated: 2026-07-12T10:00:00.000Z
---
Описание задачи в markdown…
```
Один файл — одна задача (`*.xflow.md`). Имя файла строится из title (slug).
Макс. длина `title`: 80 символов.
### Конфиг проекта (`config.yml` в папке задач)
По умолчанию:
```text
.xflow/
config.yml
fix-login.xflow.md
```
```yaml
# .xflow/config.yml
tags:
- bug
- frontend
```
Если `config.yml` есть, теги вне каталога — warning (Quick Fix: **Add tag "…" to
project**). Hover на `tags`**Edit tags…**.
## Dashboard
- Поиск по title/body, chips status/priority, group none/status/priority
- Scope: All / Project / Global
- Sort by **created**: Oldest first (default) / Newest first
- Detail только просмотр; **Edit** открывает файл задачи в editor
- `+ Task` — create
## Kanban
- Колонки по статусу, DnD → смена status
- Scope filter, Show hidden (backlog/cancelled)
- `+` на колонке — create с этим status
## Разработка
```bash
npm run build # бандл extension → out/extension.js (Vite)
npm run watch # watch-сборка
npm run test # Vitest (watch)
npm run test:run # Vitest один прогон
npm run check # tsc app + tests
npm run lint # ESLint
npm run format # Prettier
```
### Архитектура (кратко)
- **use-cases** (`src/commands/`) — без vscode, `Result` / `ResultAsync`
(neverthrow)
- **ports** + adapters storage (`FsTaskRepository`, `NodeFileSystem`,
`VscodeConfigProvider`)
- **UI** (`src/ui/`, `src/views/`) — тонкие vscode-адаптеры, WebView host
- **defaults settings** — из `package.json`; код читает их через `src/config.ts`
Детали плана: [`docs/PLAN.md`](docs/PLAN.md).
Бэклог мелочей: [`todo.md`](todo.md).
English README: [`README.md`](README.md).
## Лицензия
MIT (см. `package.json`).