Skip to content

Command reference documents short flags that do not exist #52

Closed

Description

@plx

Problem Statement

The command reference currently states that global short flags -v and -q are available, but the actual CLI only supports long-form --verbose and --quiet. This creates a documentation/runtime mismatch that causes avoidable command failures for users and agent workflows following the reference.

Impact: Commands like trop -v list and trop -q reserve fail at argument parsing instead of running, which can break scripts and automated usage based on the documented interface.

Affected Files / Lines

  • plugins/trop/skills/trop-reference/references/cli-commands.md:57
    • Documents: --verbose / -v and --quiet / -q.
  • trop-cli/src/cli.rs:22
    • verbose is defined as long-only: #[arg(long, global = true)].
  • trop-cli/src/cli.rs:26
    • quiet is defined as long-only: #[arg(long, global = true)].

Additional source-of-truth context:

  • reference/ImplementationSpecification.md:333-337 specifies long forms only (--verbose, --quiet, etc.).

Recommended Fix

Align the command reference with the implemented/spec'd CLI behavior by removing unsupported short aliases from the docs.

--- a/plugins/trop/skills/trop-reference/references/cli-commands.md
+++ b/plugins/trop/skills/trop-reference/references/cli-commands.md
@@
-All commands accept: `--verbose` / `-v`, `--quiet` / `-q`, `--data-dir <path>`, `--busy-timeout <seconds>`, `--help` / `-h`
+All commands accept: `--verbose`, `--quiet`, `--data-dir <path>`, `--busy-timeout <seconds>`, `--help` / `-h`

Optional hardening to prevent future drift: add tests that explicitly verify -v and -q are rejected unless short aliases are intentionally introduced later.

// trop-cli/tests/cli.rs
#[test]
fn test_cli_short_verbose_flag_not_supported() {
    let mut cmd = Command::cargo_bin("trop").unwrap();
    cmd.arg("-v").arg("list");
    cmd.assert().failure().stderr(predicate::str::contains("error:"));
}

#[test]
fn test_cli_short_quiet_flag_not_supported() {
    let mut cmd = Command::cargo_bin("trop").unwrap();
    cmd.arg("-q").arg("list");
    cmd.assert().failure().stderr(predicate::str::contains("error:"));
}

Validation Strategy

  1. Docs validation

    • Confirm plugins/trop/skills/trop-reference/references/cli-commands.md no longer advertises -v/-q.
  2. Manual CLI verification

    • trop --verbose list succeeds.
    • trop --quiet list succeeds.
    • trop -v list fails with argument parsing error.
    • trop -q list fails with argument parsing error.
  3. Automated checks

    • Add/adjust tests in trop-cli/tests/cli.rs (or trop-cli/tests/global_options.rs) for unsupported short flags.
    • Run cargo test to ensure behavior is documented and enforced.

🤖 Discovered by Codex · expanded by Codex · filed by Claude Code

Activity

  1. added this to the claude-code-plugin milestone on Apr 9, 2026
  2. added
    P2Non-blocking semantic, stability, completeness, or correctness.
    on Apr 9, 2026
  3. plx commented on Apr 9, 2026

    @plx
    OwnerAuthor

    Addressed via 8120e5c in PR #48

    Changes:

    • Removed undocumented -v and -q short flag aliases from plugins/trop/skills/trop-reference/references/cli-commands.md, aligning the command reference with the implemented CLI (which only supports --verbose and --quiet long forms).
    • Added two guard tests in trop-cli/tests/cli.rs (test_cli_short_verbose_flag_not_supported and test_cli_short_quiet_flag_not_supported) to prevent future documentation/runtime drift.

    All 9 CLI tests pass, including the new guards. Full test suite (178 tests) passes cleanly.

    🤖 Posted by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Non-blocking semantic, stability, completeness, or correctness.claude-code-pluginConcerns trop's claude code plugin.discovered-by-codexIssues discovered by codex.

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions