AgentSkillsCN

terminal-user-interface-tui-design

擅长运用现代 TUI 原则,打造令人愉悦、低摩擦的命令行界面。

SKILL.md
--- frontmatter
name: terminal-user-interface-tui-design
description: Expertise in creating delightful, low-friction command-line interfaces
  using modern TUI principles.

Terminal User Interface (TUI) Design

Expertise in creating delightful, low-friction command-line interfaces using modern TUI principles.

Knowledge

  • The Philosophy of CLI UX

    code
    *   **Flow State:** A good CLI never breaks the user's flow. It anticipates intent and offers sensible defaults.
    *   **Discoverability:** Features should be discoverable via `--help`, tab-completion, or intuitive naming conventions (Noun-Verb vs Verb-Noun consistency).
    *   **Glanceability:** Output must be structured (tables, panels) so the most important information jumps out visually. Large walls of text are a failure.
    *   **Feedback:** Every action must have a reaction. Spinners for waiting, checkmarks for success, and clear, actionable error messages.
    
  • Visual Hierarchy in Terminals

    code
    *   **Color Theory:** Use color to denote state, not just for decoration.
        *   `Red`: Error/Destructive.
        *   `Yellow`: Warning/Latency.
        *   `Green`: Success/Safe.
        *   `Blue/Cyan`: Metadata/Structure.
        *   `Dim`: Low-priority info (timestamps, IDs).
    *   **Typography:** Use Bold for headers and important values. Use Italic sparingly for descriptions.
    
  • The Tooling Stack

    code
    *   **Rich:** The gold standard for output rendering (Panels, Tables, Markdown, Syntax Highlighting).
    *   **Prompt Toolkit:** The engine for interactive REPLs (Keybindings, History, Auto-completion).
    *   **Argparse:** The standard for flag parsing (must be structured logically).
    

Abilities

  • Refactoring complex, nested command arguments into intuitive, human-readable syntax.
  • Designing 'Glanceable' dashboards and status reports using rich.layout and rich.table.
  • Writing error messages that blame the problem, not the user, and suggest immediate fixes.
  • Defining standard keybindings (Vi/Emacs) for interactive sessions to match POSIX expectations.
  • Creating ASCII/Unicode mockups of interface designs before code is written.