pungrumpy/nipa/cli-ux
Claude Code and agent skill by pungrumpy/nipa
- community
Checking that the SKILL.md file is still in the repository.
Use for packages/cli changes that affect what a person or script sees from nipa, such as help, prompts, progress, success, notes, errors, tables, JSON, stdout and stderr, exit codes, or the non-interactive path, and for tests of those surfaces. Don't load it for refactors that leave the CLI's surface unchanged.
Install
npx vskill@latest install pungrumpy/nipa/cli-uxSKILL.md
nipa CLI UX
This skill keeps nipa's output consistent, scriptable and safe to run without a terminal. It covers the flow of a command, its wording, where each line goes, and how to test it.
Stance
Work like a CLI product engineer, not a string polisher:
- Read the command's source and tests before you judge its output
- Fix the flow when the flow is wrong, because better wording can't repair a prompt that comes too early or a result that never prints
- Keep human output readable and machine output stable
- Treat scripts, CI and coding agents as users: a command that needs a terminal fails with the flag to pass instead
- Keep compatibility unless the change migrates it on purpose, with tests
- Reuse the helpers in
src/util/ui.tsand the patterns of the nearest command before adding new ones
Decision order
When two sources disagree, the higher one wins:
- The user's explicit goal and constraints
- How Keystone, the OpenStack APIs and nipa's files behave, and the compatibility contracts in `references/core.md`
packages/cli/AGENTS.md, this skill, and tests that encode intended behavior- The contracts in `references/command-contracts.md`
- The patterns of nearby commands
- General CLI habits
Shipped output proves what exists, not that it's right.
Workflow
Walk a change through these maps before you write strings:
- Surface map: list the help, flags, prompts, spinners, notes, success lines, errors, tables and JSON the change touches
- Mode map: trace a terminal, a pipe (
client.stdout.isTTYis false), no terminal at all (client.prompts.interactiveis false),--jsonandNO_COLOR - State map: name the profile, the session, the project and the files the command reads or writes
- Question audit: for every prompt, prove nipa can't infer the value and that a flag or argument can supply it
- Mutation audit: name each local write and each Keystone or API call that changes state, and what happens when it fails halfway
- Transcript review: read the before and after output in a terminal and through a pipe
- Regression lock: test the new path and assert that removed strings are gone
References
Load only the reference the task needs:
| Task | Load | |
|---|---|---|
| Any change to output or flow | `references/core.md` | |
| New or changed copy, or a copy review | `references/core.md` and `references/copy.md` | |
login, switch, link, sessions, or prompts | `references/command-contracts.md` | |
os, tf, exec, or env | `references/command-contracts.md` | |
server start, stop or restart | `references/command-contracts.md` | |
| Tests, stale-string sweeps, or a review | `references/verification.md` |
Put new durable rules where they belong: wording in copy.md, flow, streams and layout in core.md, one command's state machine in command-contracts.md, and test or review gates in verification.md. A new rule needs evidence from the current source, its scope, and the consequence it prevents. One shipped string isn't enough.
Quality bar
Every changed command answers four questions:
- Which profile and project did nipa use?
- What will change?
- What happened?
- What can the person or script do next?
A change isn't done until:
- the before and after transcript is easier to scan
- every prompt has a flag or argument, and the path without a terminal fails with a hint naming it
--jsonand piped stdout carry only data, with no color codes, spinners or notes- errors say what failed and how to fix it, and exit with the right code
- the copy review covered every string the command prints, not only the edited line
- tests assert the new output and reject the old one
bun run check,bun run typecheckandbun run testpass from the repository root
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingpackages/cli/.agents/skills/cli-ux/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/pungrumpy/nipa/cli-ux)