git clone --depth 1 https://github.com/ReinaMacCredy/maestro /tmp/cli-for-agents && cp -r /tmp/cli-for-agents/.claude/skills/cli-for-agent ~/.claude/skills/cli-for-agentsSKILL.md
# CLI for agents Human-oriented CLIs often block agents: interactive prompts, huge upfront docs, and help text without copy-pasteable examples. Prefer patterns that work headlessly and compose in pipelines. ## Non-interactive first - Every input should be expressible as a flag or flag value. Do not require arrow keys, menus, or timed prompts. - If flags are missing, **then** fall back to interactive mode—not the other way around. **Bad:** `mycli deploy` → `? Which environment? (use arrow keys)` **Good:** `mycli deploy --env staging` ## Discoverability without dumping context - Agents discover subcommands incrementally: `mycli`, then `mycli deploy --help`. Do not print the entire manual on every run. - Let each subcommand own its documentation so unused commands stay out of context. ## `--help` that works - Every subcommand has `--help`. - Every `--help` includes **Examples** with real invocations. Examples do more than prose for pattern-matching. ```text Options: --env Target environment (staging, production) --tag Image tag (default: latest) --force Skip confirmation Examples: mycli deploy --env staging mycli deploy --env production --tag v1.2.3 mycli deploy --env staging --force ``` ## stdin, flags, and pipelines - Accept stdin where it makes sense (e.g. `cat config.json | mycli config import --stdin`). - Avoid odd positional ordering and avoid falling back to interactive prompts for missing values. - Support chaining: `mycli deploy --env staging --tag $(mycli build --output tag-only)`. ## Fail fast with actionable errors - On missing required flags: exit immediately with a clear message and a **correct example invocation**, not a hang. ```text Error: No image tag specified. mycli deploy --env staging --tag <image-tag> Available tags: mycli build list --output tags ``` ## Idempotency - Agents retry often. The same successful command run twice should be safe (no-op or explicit "already done"), not duplicate side effects. ## Destructive actions - Add `--dry-run` (or equivalent) so agents can preview plans before committing. - Offer `--yes` / `--force` to skip confirmations while keeping the safe default for humans. ## Predictable structure - Use a consistent pattern everywhere, e.g. `resource` + `verb`: if `mycli service list` exists, `mycli deploy list` and `mycli config list` should follow the same shape. ## Success output - On success, return machine-useful data: IDs, URLs, durations. Plain text is fine; avoid relying on decorative output alone. ```text deployed v1.2.3 to staging url: https://staging.myapp.com deploy_id: dep_abc123 duration: 34s ``` ## When reviewing an existing CLI - Check: non-interactive path, layered help, examples on `--help`, stdin/pipeline story, error messages with invocations, idempotency, dry-run, confirmation bypass flags, consistent command structure, structured success output.
>-
Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki, or list indexed repos. Examples: \"Index this repo\", \"Reanalyze the codebase\", \"Generate a wiki\"
Use when the user is debugging a bug, tracing an error, or asking why something fails. Examples: \"Why is X failing?\", \"Where does this error come from?\", \"Trace this bug\"
Use when the user asks how code works, wants to understand architecture, trace execution flows, or explore unfamiliar parts of the codebase. Examples: \"How does X work?\", \"What calls this function?\", \"Show me the auth flow\"
Use when the user asks about GitNexus itself — available tools, how to query the knowledge graph, MCP resources, graph schema, or workflow reference. Examples: \"What GitNexus tools are available?\", \"How do I use GitNexus?\"
Use when the user wants to know what will break if they change something, or needs safety analysis before editing code. Examples: \"Is it safe to change X?\", \"What depends on this?\", \"What will break?\"
Use when the user wants to rename, extract, split, move, or restructure code safely. Examples: \"Rename this function\", \"Extract this into a module\", \"Refactor this class\", \"Move this to a separate file\"
Base procedures for all mission agents: startup, cleanup, and handoff. REQUIRED skill for all mission feature implementations.