Metadata-Version: 2.4
Name: atlas-pm
Version: 0.3.0
Summary: Atlas — local-first PM-система для портфеля проектов и задач
Project-URL: Homepage, https://github.com/zZZTeJleTTy3uKZZz/atlas
Project-URL: Repository, https://github.com/zZZTeJleTTy3uKZZz/atlas
Author: Atlas CLI contributors
License: MIT
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: alembic>=1.13
Requires-Dist: httpx>=0.27
Requires-Dist: python-dateutil>=2.9
Requires-Dist: python-dotenv>=1.0
Requires-Dist: python-frontmatter>=1.1
Requires-Dist: python-slugify>=8.0.4
Requires-Dist: pytz>=2024.1
Requires-Dist: rich>=13.7
Requires-Dist: s-adapterkit>=0.1.2
Requires-Dist: s-agentskit>=0.1.0
Requires-Dist: s-clikit>=0.1.6
Requires-Dist: s-issuekit>=0.2.0
Requires-Dist: s-librarykit>=0.1.3
Requires-Dist: sqlalchemy>=2.0.30
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest-httpx>=0.32; extra == 'dev'
Requires-Dist: pytest>=8.3; extra == 'dev'
Requires-Dist: ruff>=0.5; extra == 'dev'
Description-Content-Type: text/markdown

# atlas — портфель проектов и задач из командной строки

**Локальный PM-центр для всего портфеля: проекты, задачи с измеримым ЦКП, эпики, спринты и опциональная мультиагентная приёмка — одной командой `atlas`, полностью офлайн, без облака и подписок.**

atlas — это персональная система управления проектами в одном SQLite-файле (`~/.atlas/atlas.db`). Никакого сервера, аккаунтов и сети: источник истины по задачам живёт у тебя на диске. Вывод — JSON по умолчанию, поэтому atlas одинаково удобен и человеку в терминале, и ИИ-агенту в пайплайне: провести триаж, завести задачу, сдать на приёмку — всё скриптуется.

---

## Главные блоки

### 1. Проекты и портфель — всё в одном месте
Заводишь проекты, помечаешь личные/командные, архивируешь завершённые — и видишь весь портфель одним списком со счётчиками задач. Онбординг существующей папки проекта в atlas (с git/layout-раскладкой) делается через CLI, без ручного переноса.

`atlas project add|list|get|update|archive` (+ подгруппы `git`/`layout`) · `atlas dashboard`

### 2. Задачи с обязательным ЦКП и статусами-глаголами
Задача — самодостаточный срез с измеримым Целевым Конечным Продуктом (что её закрывает — результат, а не активность). Статус меняется глаголами, а не полем `--status`: взял в работу → сдал → закрыл. Новая задача создаётся запланированной (`todo`/`backlog`); глаголы уважают lease — мультиагентную блокировку от двойного захвата.

`atlas task add --project <p> --title "…" --cpp "…"` · `start` · `done` · `block --reason "…"` · `unblock` · `review` · `cancel`

### 3. Эпики, спринты и декомпозиция
Крупную цель дробишь на независимо проверяемые задачи под эпиком; спринты группируют работу по итерациям. Прогресс виден по закрытым срезам, а не по ощущениям.

`atlas epic add|list|get` · `atlas sprint add|list|get` · `atlas task update <ref> --epic <e>`

### 4. Чек-листы, теги, участники, гипотезы
У задачи — чек-лист подпунктов, теги для срезов, участники/ассайни и роли. Управленческие гипотезы фиксируются рядом с задачами фальсифицируемым ledger'ом. Фильтруешь портфель по проекту, ассайни, статусу или тегу.

`atlas task checklist add|check` · `atlas tag add` · `atlas task member add` · `atlas person add` · `atlas hypothesis add|close` · `atlas task list --project <p> --assignee <s> --status <st>`

### 5. Бэклог-интейк и issue-хендофф
Сырьё и идеи (ЦКП не нужен, проект опционален) кидаешь в бэклог — основной пул интейка (DB-first) — и позже одним движением превращаешь в задачу с ЦКП или в отдельный проект. Баги, фичи и хендоффы между агентами ведёшь через `issue`. Ничего не теряется между «придумал» и «оформил».

`atlas backlog add|list` · `atlas backlog convert <ref> --as task|project` · `atlas issue add` (bug/feature/handoff)

### 6. Опциональная приёмка, триаж и журнал
По умолчанию приёмка ВЫКЛЮЧЕНА (соло-режим: `start → done` напрямую). Включаешь на задаче через `--reviewer` — тогда закрыть в `done` может только ревьюер (`approve`/`reject`): прозрачный контроль качества в командной/агентной работе. Плюс триаж «в работе / застряло / забыто», журнал действий и бэкапы БД.

`atlas task submit|approve|reject` · `atlas task triage` · `atlas log list|raw` · `atlas backup`

---

## Бизнес-применения

- **Единый источник истины по задачам.** Весь портфель личных и рабочих проектов в одном локальном файле — без Jira, без облака, без утечки данных наружу.
- **Дисциплина «результат, а не активность».** Обязательный ЦКП на каждой задаче заставляет формулировать измеримый итог, а не список действий — меньше «висяков» и забытых задач.
- **Мультиагентный конвейер.** Включаешь приёмку — и один агент-исполнитель делает и сдаёт, другой-ревьюер принимает: разделение ролей встроено в статусную модель, а не держится «на честном слове».
- **Триаж на старте сессии.** `task triage` разом показывает, что в работе, что застряло в blocked/review и что забыто — не плодятся заброшенные задачи.
- **Автоматизация через агентов.** JSON-вывод по умолчанию делает atlas встраиваемым: наполнение проектов, массовое заведение задач (`task batch`), отчёты по спринту встают в скрипт.

---

## Границы (честно)

- **Это локальный однопользовательский PM, не командный SaaS.** Реалтайм-синхронизации нескольких людей нет — источник истины лежит в одном `~/.atlas/atlas.db`; внешний backend подключается опционально (`connect`/`sync`), обмен — осознанно.
- **Не таск-раннер и не CI.** atlas ведёт учёт работы, но сам код не собирает и не деплоит.
- **Деструктив требует подтверждения.** Архив и `--hard` по умолчанию soft-delete и показывают дельту — массового «снести всё» одной кнопкой нет намеренно.

---

## Для кого

- **Соло-разработчики и предприниматели** — весь портфель проектов под контролем без тяжёлого таск-трекера.
- **Тимлиды и ревьюеры** — опциональная мультиагентная/командная приёмка задач с разделением ролей.
- **ИИ-агенты и автоматизации** — JSON-вывод, всё скриптуется: триаж, заведение задач, отчёты.
- **Все, кому важна приватность** — данные не покидают машину, никакого облака и аккаунтов.

---

## Установка

Требуется Python ≥ 3.11. Дистрибутив опубликован на PyPI как **`atlas-pm`** (CLI-команда — `atlas`).

**0. Одной командой** (ставит `uv` при необходимости, затем `atlas-pm`):
```bash
# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/zZZTeJleTTy3uKZZz/atlas/master/install/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/zZZTeJleTTy3uKZZz/atlas/master/install/install.ps1 | iex
```

**1. Через [skillery](https://skillery.ru) (рекомендуется)** — ставит CLI и заодно навык для Claude-агента:
```bash
skillery install atlas
```

**2. Как обычный CLI-инструмент — с PyPI** ([uv](https://docs.astral.sh/uv/) или pipx, изолированное окружение):
```bash
uv tool install atlas-pm      # рекомендуется
# или
pipx install atlas-pm
```

**3. Из исходников после клона** (разработка / editable):
```bash
git clone https://github.com/zZZTeJleTTy3uKZZz/atlas.git
cd atlas
uv tool install --editable .   # глобальный бинарь atlas из рабочей копии
# либо dev-окружение:  uv sync --extra dev
```

Проверка: `atlas --version` (сейчас `0.3.0`) и `atlas --help`.

## Обновление

```bash
atlas update              # self-update с PyPI (детектит uv/pipx/pip и обновляет atlas-pm)
atlas update --check      # только показать текущую/доступную версию и метод установки
```

- **PyPI (uv/pipx)** — `atlas update` (каноничный self-update, модель skillery).
- **skillery** — обновляй через skillery (re-install подтянет новую версию по webhook на git-тег).
- **editable (dev)** — код живой, обнови `git pull` в репозитории.
- `atlas update --from-git` — **legacy** git-reinstall (`pipx install --force` из репо) для старых pipx-git-установок; заменяет убранную команду `atlas upgrade`.

## Быстрый старт

```bash
# один раз — turnkey: правила в агентские файлы (CLAUDE.md/AGENTS.md) + SessionStart-хук триажа
atlas setup                # (только правила без хука — `atlas init`)

# инициализировать БД (миграции + справочники) и задать владельца
atlas config set owner alice
atlas project init

# проект (личный по умолчанию; --team — командный)
atlas project add --name "Мой лендинг" --slug my-landing --type personal-project

# задача с обязательным ЦКП
atlas task add --project my-landing --title "Собрать структуру" \
  --cpp "Готов wireframe из 6 секций" --priority P1

# взять в работу глаголом (lease-лок), затем закрыть
atlas task start <number|slug>
atlas task done  <number|slug>

# триаж портфеля и человекочитаемый список
atlas task triage
atlas --text task list --project my-landing
```

## Технически

- **Стек:** Python + Typer, хранилище — локальный SQLite (`~/.atlas/atlas.db`), миграции Alembic, без сети и внешних сервисов.
- **Вывод — JSON по умолчанию:** результат любой команды пайпится в `jq`, скрипты и таблицы (`--text`/`--plain` — человекочитаемо).
- **Команды (ед. число, RESTful — подчинённые ресурсы вложены):** `project (+ git/layout/tag/member) · task (+ member/checklist/handoff) · epic (+ worktree) · sprint · hypothesis · person · type · status · tag · backlog · issue · idea · inbox · log (list/raw) · backup (+ schedule) · config · sync · profile · backend`; топ-уровень — `dashboard · init · stats · update`.
- **Справка:** `atlas <группа> --help` по каждой группе — источник правды; методология задач и эпиков — в `SKILL.md`.

## Лицензия

[MIT](LICENSE).
