diff --git a/specs/PLAN.md b/specs/PLAN.md new file mode 100644 index 0000000..73a626c --- /dev/null +++ b/specs/PLAN.md @@ -0,0 +1,39 @@ +# YouTrack CLI Plan + +## Goal + +Build a Rust CLI app that uses the `youtrack-client-api` crate to expose practical YouTrack workflows from the terminal. + +The CLI should: + +- map cleanly onto the SDK's existing resource modules +- support both human-readable and machine-readable output (table, JSON, YAML) +- work against any YouTrack instance (cloud or self-hosted) +- keep app code isolated from direct SDK details where that improves maintainability + +## Dependency Baseline + +- repo: `ghostspice/youtrack-client-api` +- branch: `0.1.x` +- crate name: `youtrack-client-api` +- crate version: `0.1.0` +- edition: `2024` + +## Current Scope + +### Implemented + +- Issue management: `issue list`, `issue get`, `issue create`, `issue update`, `issue delete` +- Comment management: `comment list`, `comment add`, `comment update`, `comment delete` +- Attachment management: `attachment list`, `attachment upload`, `attachment delete` +- Table and JSON output formats +- Authentication via environment variables, compile-time embedding, or interactive prompt + +### Planned + +- YAML output format (`--output yaml`) +- `--verbose` / `--quiet` global flags with tracing +- Config file support (`~/.config/youtrack-cli/config.toml`) +- Locked-build mode via `build.rs` (parity with gitlab-cli) +- `app.rs` refactor: thin `main.rs` + `AppContext` + command dispatch +- Auth validation on token prompt (call `/api/users/me`)