# plane-cli-requiem Roadmap

Features planned, in progress, and shipped — organized by category.

## All Commands — Current Status

| Command | Status | Notes |
|---------|--------|-------|
| `plane ls` | **done** | Filters: `--state`, `--priority`. Single page only (no pagination yet) |
| `plane show` | **done** | Work items, projects, cycles, modules. `--web` flag |
| `plane create` | **done** | `--state`, `--priority`, `--project`. No `--ac`, no interactive prompts |
| `plane update` | **done** | `--state`, `--priority`, `--dry-run` |
| `plane done` | **done** | `--comment`, `--dry-run`. Infers from branch |
| `plane delete` | **done** | `--yes` to skip confirmation |
| `plane mv` | **done** | `--cycle`, `--module` |
| `plane bulk` | **done** | `--state`, `--priority`, `--dry-run` |
| `plane open` | **done** | Work items, projects, workspaces, cycles, modules |
| `plane cycles` | **done** | List cycles or cycle items. `--web`, `--format`, `--project` |
| `plane modules` | **done** | List modules or module items. `--web`, `--format`, `--project` |
| `plane dashboard` | **done** | State distribution overview |
| `plane mine` | **done** | User's assigned items. `--state`, `--priority`, `--cycle`, `--module` |
| `plane ac` | **done** | View, `add "text"`, `check <index>` — PATCHes description_html |
| `plane start` | **done** | Creates branch + transitions to In Progress |
| `plane pr` | **done** | Creates GitHub PR + auto-comments back to Plane |
| `plane me` | **done** | Session status (workspace, project, auth) |
| `plane id` | **done** | Print inferred work item ID from branch |
| `plane url` | **done** | Print inferred Plane URL from branch |
| `plane info` | **done** | Parse Plane web URL, fetch + print entity summary |
| `plane relation` | **done** | `ls`/`add`/`rm` subcommands. Uses internal API (auth untested) |
| `plane watch` | **done** | Live-tail with polling, field-level diff detection |
| `plane config` | **done** | `--workspace`, `--token`, `--project` |
| `plane workspace` | **done** | Switch active workspace |

## Stubbed / Broken

| Item | Problem | Fix |
|------|---------|-----|
| `plane relation` auth | Uses internal `/api/` path, not public `/api/v1/` | API key auth may not work — needs live testing |

## Planned Features

### New Commands

| Command | Description |
|---------|-------------|
| `plane cycle create` | Create a new cycle with name, start/end dates |
| `plane module create` | Create a new module with name, description, status, dates |

### Flags & Features on Existing Commands

| Feature | Scope | Description |
|---------|-------|-------------|
| `--fields` | ls | Comma-separated field selection passed to `?fields=` API param |
| Cursor pagination | ls | Follow `next_cursor` to fetch all pages, not just the first 100 |
| `--ac` | create | Inline acceptance criteria on create |
| Interactive prompts | create, update | dialoguer-based prompts when required flags are omitted |
| `$EDITOR` support | create, update | Open temp file in `$EDITOR` for long descriptions |

### UX Improvements

| Feature | Description |
|---------|-------------|
| Rate-limit awareness | Read `X-RateLimit-Remaining` header, back off before 429 |
| Retry on transient errors | Retry 429 and 5xx with exponential backoff |
| `--verbose` / `--debug` | Print request URLs and response timing for debugging |
| Shell completions | Generate completions for bash/zsh/fish/powershell via clap |
| `plane alias` | User-defined command shortcuts (e.g. `plane wip` = `plane ls --state "in progress"`) |

### API Coverage Gaps

| Endpoint | Notes |
|----------|-------|
| `POST /cycles/` | For `plane cycle create` |
| `POST /modules/` | For `plane module create` |
| `PATCH /cycles/{id}/` | For future `plane cycle update` |
| `PATCH /modules/{id}/` | For future `plane module update` |
| Webhooks / SSE | Would replace polling in `plane watch` if available |

### Dependencies to Add

| Crate | Purpose | When |
|-------|---------|------|
| `dialoguer` | Interactive prompts (select, confirm, input) | With interactive create/update |
| `open` | Cross-platform browser launch (replaces manual `cmd /C start`) | With `--web` flag |
| `ctrlc` | Graceful shutdown for `plane watch` | Optional polish |
