From 4f4d53944f122acb2972dad882b46b3994f8b1d0 Mon Sep 17 00:00:00 2001 From: Said Nizamutdinov Date: Fri, 17 Apr 2026 10:39:19 +0300 Subject: [PATCH] Seed specs/ directory with initial plan Adds specs/PLAN.md covering the CLI's goal, dependency baseline, current scope, and planned features. Co-Authored-By: Claude Opus 4.6 --- specs/PLAN.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 specs/PLAN.md 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`)