dot-ai-evals 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/SKILL.md +223 -0
- dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/ansi-color-reference.md +222 -0
- dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/examples/help-text-example.txt +41 -0
- dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/examples/interactive-prompt-example.txt +45 -0
- dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/examples/list-view-example.txt +25 -0
- dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/unicode-symbols.md +335 -0
- dot_ai_evals-0.1.0/.github/workflows/release.yml +80 -0
- dot_ai_evals-0.1.0/.gitignore +25 -0
- dot_ai_evals-0.1.0/CHANGELOG.md +13 -0
- dot_ai_evals-0.1.0/LICENSE +21 -0
- dot_ai_evals-0.1.0/PKG-INFO +177 -0
- dot_ai_evals-0.1.0/README.md +141 -0
- dot_ai_evals-0.1.0/ai_eval/__init__.py +13 -0
- dot_ai_evals-0.1.0/ai_eval/__main__.py +6 -0
- dot_ai_evals-0.1.0/ai_eval/bootstrap/__init__.py +23 -0
- dot_ai_evals-0.1.0/ai_eval/bootstrap/golden_writer.py +107 -0
- dot_ai_evals-0.1.0/ai_eval/bootstrap/sitecustomize.py +185 -0
- dot_ai_evals-0.1.0/ai_eval/bootstrap/tracer.py +220 -0
- dot_ai_evals-0.1.0/ai_eval/bootstrap/wrappers.py +172 -0
- dot_ai_evals-0.1.0/ai_eval/cli/__init__.py +0 -0
- dot_ai_evals-0.1.0/ai_eval/cli/analyze.py +330 -0
- dot_ai_evals-0.1.0/ai_eval/cli/app.py +276 -0
- dot_ai_evals-0.1.0/ai_eval/cli/bootstrap.py +169 -0
- dot_ai_evals-0.1.0/ai_eval/cli/config_cmd.py +58 -0
- dot_ai_evals-0.1.0/ai_eval/cli/diff.py +160 -0
- dot_ai_evals-0.1.0/ai_eval/cli/doctor.py +171 -0
- dot_ai_evals-0.1.0/ai_eval/cli/history.py +67 -0
- dot_ai_evals-0.1.0/ai_eval/cli/init.py +371 -0
- dot_ai_evals-0.1.0/ai_eval/cli/judge.py +175 -0
- dot_ai_evals-0.1.0/ai_eval/cli/render/__init__.py +0 -0
- dot_ai_evals-0.1.0/ai_eval/cli/render/json_out.py +24 -0
- dot_ai_evals-0.1.0/ai_eval/cli/render/tables.py +278 -0
- dot_ai_evals-0.1.0/ai_eval/cli/render/theme.py +44 -0
- dot_ai_evals-0.1.0/ai_eval/cli/report.py +106 -0
- dot_ai_evals-0.1.0/ai_eval/cli/rubric_engine.py +134 -0
- dot_ai_evals-0.1.0/ai_eval/cli/run.py +178 -0
- dot_ai_evals-0.1.0/ai_eval/cli/stubs.py +34 -0
- dot_ai_evals-0.1.0/ai_eval/config/__init__.py +0 -0
- dot_ai_evals-0.1.0/ai_eval/config/defaults.py +60 -0
- dot_ai_evals-0.1.0/ai_eval/config/loader.py +182 -0
- dot_ai_evals-0.1.0/ai_eval/config/schema.py +200 -0
- dot_ai_evals-0.1.0/ai_eval/inference/__init__.py +0 -0
- dot_ai_evals-0.1.0/ai_eval/inference/ast_scan.py +321 -0
- dot_ai_evals-0.1.0/ai_eval/inference/detectors/__init__.py +0 -0
- dot_ai_evals-0.1.0/ai_eval/inference/detectors/_langchain_retrieval.py +154 -0
- dot_ai_evals-0.1.0/ai_eval/inference/detectors/base.py +60 -0
- dot_ai_evals-0.1.0/ai_eval/inference/detectors/chromadb.py +66 -0
- dot_ai_evals-0.1.0/ai_eval/inference/detectors/langchain.py +162 -0
- dot_ai_evals-0.1.0/ai_eval/inference/detectors/langgraph.py +142 -0
- dot_ai_evals-0.1.0/ai_eval/inference/detectors/openai_chat.py +67 -0
- dot_ai_evals-0.1.0/ai_eval/inference/detectors/openai_responses.py +82 -0
- dot_ai_evals-0.1.0/ai_eval/inference/detectors/openai_tools.py +69 -0
- dot_ai_evals-0.1.0/ai_eval/inference/detectors/pgvector.py +143 -0
- dot_ai_evals-0.1.0/ai_eval/inference/hints.py +101 -0
- dot_ai_evals-0.1.0/ai_eval/inference/prompts/classify_task.txt +32 -0
- dot_ai_evals-0.1.0/ai_eval/inference/prompts/empty_recover.txt +31 -0
- dot_ai_evals-0.1.0/ai_eval/inference/prompts/few_shot.yaml +123 -0
- dot_ai_evals-0.1.0/ai_eval/inference/signatures.py +172 -0
- dot_ai_evals-0.1.0/ai_eval/inference/slm/__init__.py +29 -0
- dot_ai_evals-0.1.0/ai_eval/inference/slm/builder.py +576 -0
- dot_ai_evals-0.1.0/ai_eval/inference/slm/cache.py +117 -0
- dot_ai_evals-0.1.0/ai_eval/inference/slm/client.py +80 -0
- dot_ai_evals-0.1.0/ai_eval/inference/slm/evidence.py +185 -0
- dot_ai_evals-0.1.0/ai_eval/inference/slm/prompts.py +68 -0
- dot_ai_evals-0.1.0/ai_eval/inference/slm/validation.py +137 -0
- dot_ai_evals-0.1.0/ai_eval/inference/synthesize.py +137 -0
- dot_ai_evals-0.1.0/ai_eval/insights/__init__.py +17 -0
- dot_ai_evals-0.1.0/ai_eval/insights/diff.py +40 -0
- dot_ai_evals-0.1.0/ai_eval/insights/history.py +138 -0
- dot_ai_evals-0.1.0/ai_eval/insights/root_cause.py +115 -0
- dot_ai_evals-0.1.0/ai_eval/judge/__init__.py +31 -0
- dot_ai_evals-0.1.0/ai_eval/judge/cache.py +87 -0
- dot_ai_evals-0.1.0/ai_eval/judge/gateway.py +193 -0
- dot_ai_evals-0.1.0/ai_eval/judge/instructor_glue.py +67 -0
- dot_ai_evals-0.1.0/ai_eval/judge/prompts/__init__.py +15 -0
- dot_ai_evals-0.1.0/ai_eval/judge/prompts/checklist_basic.py +57 -0
- dot_ai_evals-0.1.0/ai_eval/judge/prompts/cot_complex.py +59 -0
- dot_ai_evals-0.1.0/ai_eval/judge/schemas.py +54 -0
- dot_ai_evals-0.1.0/ai_eval/judge/tiering.py +39 -0
- dot_ai_evals-0.1.0/ai_eval/metrics/__init__.py +35 -0
- dot_ai_evals-0.1.0/ai_eval/metrics/judge_builtin.py +309 -0
- dot_ai_evals-0.1.0/ai_eval/metrics/registry.py +369 -0
- dot_ai_evals-0.1.0/ai_eval/runner/__init__.py +37 -0
- dot_ai_evals-0.1.0/ai_eval/runner/engine.py +357 -0
- dot_ai_evals-0.1.0/ai_eval/runner/git.py +39 -0
- dot_ai_evals-0.1.0/ai_eval/runner/metrics/__init__.py +3 -0
- dot_ai_evals-0.1.0/ai_eval/runner/metrics/latency.py +38 -0
- dot_ai_evals-0.1.0/ai_eval/runner/record.py +100 -0
- dot_ai_evals-0.1.0/ai_eval/runner/thresholds.py +96 -0
- dot_ai_evals-0.1.0/ai_eval/scaffold/__init__.py +0 -0
- dot_ai_evals-0.1.0/ai_eval/scaffold/gitignore_patch.py +24 -0
- dot_ai_evals-0.1.0/ai_eval/scaffold/golden_writer.py +130 -0
- dot_ai_evals-0.1.0/ai_eval/scaffold/hints_writer.py +50 -0
- dot_ai_evals-0.1.0/ai_eval/scaffold/rubrics_writer.py +42 -0
- dot_ai_evals-0.1.0/ai_eval/scaffold/templates/__init__.py +0 -0
- dot_ai_evals-0.1.0/ai_eval/scaffold/templates/tests_py.tmpl +27 -0
- dot_ai_evals-0.1.0/ai_eval/scaffold/tests_writer.py +18 -0
- dot_ai_evals-0.1.0/ai_eval/storage/__init__.py +0 -0
- dot_ai_evals-0.1.0/ai_eval/storage/locks.py +49 -0
- dot_ai_evals-0.1.0/ai_eval/storage/paths.py +76 -0
- dot_ai_evals-0.1.0/ai_eval/storage/runs.py +75 -0
- dot_ai_evals-0.1.0/ai_eval/telemetry/__init__.py +0 -0
- dot_ai_evals-0.1.0/ai_eval/telemetry/logger.py +72 -0
- dot_ai_evals-0.1.0/ai_eval/telemetry/progress.py +34 -0
- dot_ai_evals-0.1.0/docs/how-it-works.html +1076 -0
- dot_ai_evals-0.1.0/pyproject.toml +98 -0
- dot_ai_evals-0.1.0/skills-lock.json +11 -0
- dot_ai_evals-0.1.0/uv.lock +2630 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cli-ux-designer
|
|
3
|
+
description: This skill should be used when the user asks to "design a CLI", "improve command structure", "format terminal output", "review CLI usability", "design help text", or "add flags and arguments". Automatically activates when designing new CLI tools, improving command interfaces, formatting terminal output, or reviewing CLI usability. Not for GUI/web design, backend APIs, or shell scripting.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# CLI Design Guide
|
|
7
|
+
|
|
8
|
+
Expert CLI design consultant specializing in creating exceptional command-line interfaces. Design, review, and improve CLI tools by applying comprehensive design principles and patterns.
|
|
9
|
+
|
|
10
|
+
## When NOT to Use This Skill
|
|
11
|
+
|
|
12
|
+
Do not use this skill for:
|
|
13
|
+
- GUI/web interface design
|
|
14
|
+
- Backend API design (unless CLI tool interacts with it)
|
|
15
|
+
- General UX design outside command-line contexts
|
|
16
|
+
- Programming language design
|
|
17
|
+
|
|
18
|
+
## Core Expertise
|
|
19
|
+
|
|
20
|
+
Core design principles to apply:
|
|
21
|
+
|
|
22
|
+
### 1. Reasonable Defaults, Easy Overrides
|
|
23
|
+
|
|
24
|
+
- Optimize for common use cases while providing customization options
|
|
25
|
+
- Use flags to modify default behaviors
|
|
26
|
+
- Consider what most users need most often
|
|
27
|
+
|
|
28
|
+
### 2. Maintain Brand Consistency
|
|
29
|
+
|
|
30
|
+
- Use platform-specific language and terminology
|
|
31
|
+
- Mirror web interface patterns where appropriate
|
|
32
|
+
- Apply consistent visual styling (colors, states, syntax)
|
|
33
|
+
- Use sentence case, not title case
|
|
34
|
+
|
|
35
|
+
### 3. Reduce Cognitive Load
|
|
36
|
+
|
|
37
|
+
- Include confirmation steps for risky operations
|
|
38
|
+
- Provide clear headers for context
|
|
39
|
+
- Maintain consistent command patterns
|
|
40
|
+
- Anticipate user mistakes and next actions
|
|
41
|
+
- Design for accessibility
|
|
42
|
+
|
|
43
|
+
### 4. Terminal-First with Web Integration
|
|
44
|
+
|
|
45
|
+
- Keep users in terminal when possible
|
|
46
|
+
- Provide easy paths to web interface when needed
|
|
47
|
+
- Include `--web` flags for browser actions
|
|
48
|
+
- Output relevant URLs after operations
|
|
49
|
+
|
|
50
|
+
## Command Structure Expertise
|
|
51
|
+
|
|
52
|
+
Ensure commands follow this consistent pattern:
|
|
53
|
+
|
|
54
|
+
| tool | `<command>` | `<subcommand>` | [value] | [flags] | [value] |
|
|
55
|
+
| ---- | ----------- | -------------- | -------- | ------- | ------- |
|
|
56
|
+
| cli | issue | view | 234 | --web | - |
|
|
57
|
+
| cli | pr | create | - | --title | "Title" |
|
|
58
|
+
| cli | repo | fork | org/repo | --clone | false |
|
|
59
|
+
|
|
60
|
+
**Components:**
|
|
61
|
+
|
|
62
|
+
- **Command**: The object to interact with
|
|
63
|
+
- **Subcommand**: The action to take on that object
|
|
64
|
+
- **Flag**: Modifiers with long version (`--state`) and often shorthand (`-s`)
|
|
65
|
+
- **Values**: IDs, owner/repo pairs, URLs, branch names, file names
|
|
66
|
+
|
|
67
|
+
**Language Guidelines:**
|
|
68
|
+
|
|
69
|
+
- Use unambiguous language that can't be confused
|
|
70
|
+
- Use shorter phrases when possible and appropriate
|
|
71
|
+
- Use flags for modifiers of actions, avoid making modifiers their own commands
|
|
72
|
+
- Use understood shorthands to save characters
|
|
73
|
+
|
|
74
|
+
## Decision Frameworks
|
|
75
|
+
|
|
76
|
+
Use these when making CLI design choices:
|
|
77
|
+
|
|
78
|
+
**Flag vs. Subcommand:**
|
|
79
|
+
- Flag: modifies HOW a command runs (`--verbose`, `--format json`, `--dry-run`)
|
|
80
|
+
- Subcommand: defines WHAT action to take (`issue create`, `pr merge`)
|
|
81
|
+
- Rule: if it changes the action, it's a subcommand. If it changes the behavior, it's a flag.
|
|
82
|
+
|
|
83
|
+
**Interactive vs. Non-interactive:**
|
|
84
|
+
- Default to interactive when: user is exploring, multiple choices needed, destructive action requires confirmation
|
|
85
|
+
- Default to non-interactive when: command is commonly scripted, output is piped, CI/CD context
|
|
86
|
+
- Always: provide `--yes`/`-y` to skip confirmations, `--no-input` to disable all prompts
|
|
87
|
+
|
|
88
|
+
**Output Format:**
|
|
89
|
+
- Human-readable (default): colors, tables, summaries when stdout is a TTY
|
|
90
|
+
- Machine-readable (piped): no colors, tab-delimited or JSON when stdout is not a TTY
|
|
91
|
+
- Explicit: `--format json|table|csv` flag to override detection
|
|
92
|
+
|
|
93
|
+
**Error Handling:**
|
|
94
|
+
- Exit code 0: success
|
|
95
|
+
- Exit code 1: general error
|
|
96
|
+
- Exit code 2: usage error (wrong flags/args)
|
|
97
|
+
- Always: error message to stderr, suggested fix when possible
|
|
98
|
+
|
|
99
|
+
## Visual Design System Knowledge
|
|
100
|
+
|
|
101
|
+
### Typography
|
|
102
|
+
|
|
103
|
+
- Assume monospace fonts
|
|
104
|
+
- Use **bold** for emphasis and repository names
|
|
105
|
+
- Create hierarchy with spacing and weight
|
|
106
|
+
- No italics (unreliable support)
|
|
107
|
+
|
|
108
|
+
### Color Usage
|
|
109
|
+
|
|
110
|
+
Apply the 8 basic ANSI colors:
|
|
111
|
+
|
|
112
|
+
- **Green**: Success, open states
|
|
113
|
+
- **Red**: Failure, closed states
|
|
114
|
+
- **Yellow**: Warnings, draft states
|
|
115
|
+
- **Blue**: Information, links
|
|
116
|
+
- **Cyan**: Branch names, special identifiers
|
|
117
|
+
- **Magenta**: Special highlights
|
|
118
|
+
- **Gray**: Secondary information, labels
|
|
119
|
+
- **White/Default**: Primary text
|
|
120
|
+
|
|
121
|
+
**Guidelines:**
|
|
122
|
+
|
|
123
|
+
- Only enhance meaning, never communicate meaning solely through color
|
|
124
|
+
- Consider users can customize terminal colors
|
|
125
|
+
- Some terminals don't support 256-color sequences reliably
|
|
126
|
+
|
|
127
|
+
For complete ANSI color codes and escape sequences, see `./references/ansi-color-reference.md`.
|
|
128
|
+
|
|
129
|
+
### Iconography
|
|
130
|
+
|
|
131
|
+
Use Unicode symbols consistently:
|
|
132
|
+
|
|
133
|
+
- `✓` Success
|
|
134
|
+
- `✗` Failure
|
|
135
|
+
- `!` Alert
|
|
136
|
+
- `-` Neutral
|
|
137
|
+
- `+` Changes requested
|
|
138
|
+
|
|
139
|
+
Consider varying Unicode font support across systems.
|
|
140
|
+
|
|
141
|
+
For a comprehensive list of CLI-friendly Unicode symbols, see `./references/unicode-symbols.md`.
|
|
142
|
+
|
|
143
|
+
## Component Pattern Expertise
|
|
144
|
+
|
|
145
|
+
### Lists
|
|
146
|
+
|
|
147
|
+
- Use tabular format with headers
|
|
148
|
+
- Show state through color
|
|
149
|
+
- Include relevant contextual information
|
|
150
|
+
|
|
151
|
+
For a complete list view example, see `./references/examples/list-view-example.txt`.
|
|
152
|
+
|
|
153
|
+
### Detail Views
|
|
154
|
+
|
|
155
|
+
- Show comprehensive information
|
|
156
|
+
- Indent body content
|
|
157
|
+
- Include URLs at bottom
|
|
158
|
+
|
|
159
|
+
### Prompts
|
|
160
|
+
|
|
161
|
+
- **Yes/No**: Default in caps, for confirmations
|
|
162
|
+
- **Short text**: Single-line input with autocomplete
|
|
163
|
+
- **Long text**: Multi-line with editor option
|
|
164
|
+
- **Radio select**: Choose one option
|
|
165
|
+
- **Multi-select**: Choose multiple options
|
|
166
|
+
- Always provide flag alternatives to prompts
|
|
167
|
+
|
|
168
|
+
For an interactive prompt example, see `./references/examples/interactive-prompt-example.txt`.
|
|
169
|
+
|
|
170
|
+
### Help Pages
|
|
171
|
+
|
|
172
|
+
Required sections: Usage, Core commands, Flags, Learn more, Inherited flags
|
|
173
|
+
Optional sections: Additional commands, Examples, Arguments, Feedback
|
|
174
|
+
|
|
175
|
+
For a complete help text example, see `./references/examples/help-text-example.txt`.
|
|
176
|
+
|
|
177
|
+
### Syntax Conventions
|
|
178
|
+
|
|
179
|
+
- `<required-args>` in angle brackets
|
|
180
|
+
- `[optional-args]` in square brackets
|
|
181
|
+
- `{mutually-exclusive}` in braces
|
|
182
|
+
- `repeatable...` with ellipsis
|
|
183
|
+
- Use dash-case for multi-word variables
|
|
184
|
+
|
|
185
|
+
## Anti-patterns
|
|
186
|
+
|
|
187
|
+
Avoid these common CLI design mistakes:
|
|
188
|
+
|
|
189
|
+
| Anti-pattern | Better Approach |
|
|
190
|
+
|-------------|-----------------|
|
|
191
|
+
| Deeply nested subcommands (`tool group sub action`) | Max 2 levels: `tool command [flags]` |
|
|
192
|
+
| Inconsistent flag naming (`--no-color` vs `--disable-colors`) | Pick one convention and apply everywhere |
|
|
193
|
+
| Interactive prompts with no flag alternatives | Every prompt must have a `--flag` equivalent |
|
|
194
|
+
| Cryptic error messages ("Error: 1") | Include what went wrong, why, and how to fix |
|
|
195
|
+
| Silent failures (exit 0 on error) | Non-zero exit codes for failures, stderr for errors |
|
|
196
|
+
| Missing `--help` on subcommands | Every command level should have help |
|
|
197
|
+
| Mixing stdout data with status messages | Data to stdout, progress/status to stderr |
|
|
198
|
+
|
|
199
|
+
## Technical Considerations
|
|
200
|
+
|
|
201
|
+
### Script Automation Support
|
|
202
|
+
|
|
203
|
+
- Provide flags for all interactive elements
|
|
204
|
+
- Output machine-readable formats when piped
|
|
205
|
+
- Use tabs as delimiters for structured data
|
|
206
|
+
- Remove colors/formatting in non-terminal output
|
|
207
|
+
- Include exact timestamps and full data
|
|
208
|
+
|
|
209
|
+
### Accessibility
|
|
210
|
+
|
|
211
|
+
- Use punctuation for screen reader pauses
|
|
212
|
+
- Don't rely solely on color for meaning
|
|
213
|
+
- Support high contrast and custom themes
|
|
214
|
+
- Design for cognitive accessibility
|
|
215
|
+
|
|
216
|
+
## Success Criteria
|
|
217
|
+
|
|
218
|
+
Recommendations are successful when:
|
|
219
|
+
- Commands follow consistent patterns across the tool
|
|
220
|
+
- Help text is clear with useful examples
|
|
221
|
+
- Visual hierarchy guides users naturally
|
|
222
|
+
- Both interactive and scriptable use cases work
|
|
223
|
+
- Accessibility requirements are met
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# ANSI Color Reference for CLI Design
|
|
2
|
+
|
|
3
|
+
This reference provides comprehensive ANSI color codes for terminal styling in CLI applications.
|
|
4
|
+
|
|
5
|
+
## Basic 16 Colors (3/4-bit)
|
|
6
|
+
|
|
7
|
+
### Standard Colors
|
|
8
|
+
|
|
9
|
+
| Color | Foreground | Background | Use Cases |
|
|
10
|
+
|---------|-----------|-----------|----------------------------------------|
|
|
11
|
+
| Black | `\033[30m` | `\033[40m` | Default text, dividers |
|
|
12
|
+
| Red | `\033[31m` | `\033[41m` | Errors, failures, closed states |
|
|
13
|
+
| Green | `\033[32m` | `\033[42m` | Success, open states, confirmations |
|
|
14
|
+
| Yellow | `\033[33m` | `\033[43m` | Warnings, draft states, caution |
|
|
15
|
+
| Blue | `\033[34m` | `\033[44m` | Information, links, metadata |
|
|
16
|
+
| Magenta | `\033[35m` | `\033[45m` | Special highlights, tags |
|
|
17
|
+
| Cyan | `\033[36m` | `\033[46m` | Branch names, identifiers, emphasis |
|
|
18
|
+
| White | `\033[37m` | `\033[47m` | Primary text, headings |
|
|
19
|
+
|
|
20
|
+
### Bright/Bold Variants
|
|
21
|
+
|
|
22
|
+
| Color | Foreground | Background | Use Cases |
|
|
23
|
+
|--------------|-----------|-----------|----------------------------------|
|
|
24
|
+
| Bright Black (Gray) | `\033[90m` | `\033[100m` | Secondary text, labels, timestamps |
|
|
25
|
+
| Bright Red | `\033[91m` | `\033[101m` | Critical errors, destructive actions |
|
|
26
|
+
| Bright Green | `\033[92m` | `\033[102m` | Strong success indicators |
|
|
27
|
+
| Bright Yellow | `\033[93m` | `\033[103m` | Important warnings |
|
|
28
|
+
| Bright Blue | `\033[94m` | `\033[104m` | Highlighted information |
|
|
29
|
+
| Bright Magenta | `\033[95m` | `\033[105m` | Special status indicators |
|
|
30
|
+
| Bright Cyan | `\033[96m` | `\033[106m` | Emphasized identifiers |
|
|
31
|
+
| Bright White | `\033[97m` | `\033[107m` | Maximum emphasis, alerts |
|
|
32
|
+
|
|
33
|
+
## Text Styling
|
|
34
|
+
|
|
35
|
+
| Style | Code | Reset | Use Cases |
|
|
36
|
+
|----------------|-----------|-----------|------------------------------|
|
|
37
|
+
| Bold | `\033[1m` | `\033[22m` | Headers, emphasis |
|
|
38
|
+
| Dim | `\033[2m` | `\033[22m` | Secondary info, deprecation |
|
|
39
|
+
| Italic | `\033[3m` | `\033[23m` | Not recommended (poor support) |
|
|
40
|
+
| Underline | `\033[4m` | `\033[24m` | Links, emphasis |
|
|
41
|
+
| Blink | `\033[5m` | `\033[25m` | Avoid (accessibility issue) |
|
|
42
|
+
| Reverse | `\033[7m` | `\033[27m` | Selection, current item |
|
|
43
|
+
| Strikethrough | `\033[9m` | `\033[29m` | Deprecated, removed items |
|
|
44
|
+
|
|
45
|
+
## Reset Codes
|
|
46
|
+
|
|
47
|
+
| Reset Type | Code | Description |
|
|
48
|
+
|---------------|-----------|-------------------------------------|
|
|
49
|
+
| All attributes | `\033[0m` | Clear all styling and colors |
|
|
50
|
+
| Foreground | `\033[39m` | Reset to default text color |
|
|
51
|
+
| Background | `\033[49m` | Reset to default background |
|
|
52
|
+
|
|
53
|
+
## 256 Color Palette (8-bit)
|
|
54
|
+
|
|
55
|
+
### Syntax
|
|
56
|
+
- **Foreground**: `\033[38;5;<n>m` where `<n>` is 0-255
|
|
57
|
+
- **Background**: `\033[48;5;<n>m` where `<n>` is 0-255
|
|
58
|
+
|
|
59
|
+
### Color Ranges
|
|
60
|
+
|
|
61
|
+
**0-15**: Standard and bright colors (same as 16-color palette above)
|
|
62
|
+
|
|
63
|
+
**16-231**: 6×6×6 RGB color cube
|
|
64
|
+
- Formula: `16 + 36×r + 6×g + b` where r,g,b are 0-5
|
|
65
|
+
- Example: `\033[38;5;196m` = bright red (r=5, g=0, b=0)
|
|
66
|
+
|
|
67
|
+
**232-255**: Grayscale ramp (24 shades from dark to light)
|
|
68
|
+
- Example: `\033[38;5;240m` = dark gray
|
|
69
|
+
- Example: `\033[38;5;250m` = light gray
|
|
70
|
+
|
|
71
|
+
### Common 256 Colors
|
|
72
|
+
|
|
73
|
+
| Color Description | Code (FG) | Hex Approximation |
|
|
74
|
+
|------------------|----------------|-------------------|
|
|
75
|
+
| Dark Red | `\033[38;5;88m` | `#870000` |
|
|
76
|
+
| Orange | `\033[38;5;208m`| `#ff8700` |
|
|
77
|
+
| Dark Green | `\033[38;5;28m` | `#008700` |
|
|
78
|
+
| Teal | `\033[38;5;30m` | `#008787` |
|
|
79
|
+
| Navy Blue | `\033[38;5;18m` | `#000087` |
|
|
80
|
+
| Purple | `\033[38;5;93m` | `#8700ff` |
|
|
81
|
+
| Dark Gray | `\033[38;5;240m`| `#585858` |
|
|
82
|
+
| Light Gray | `\033[38;5;250m`| `#bcbcbc` |
|
|
83
|
+
|
|
84
|
+
## RGB True Color (24-bit)
|
|
85
|
+
|
|
86
|
+
### Syntax
|
|
87
|
+
- **Foreground**: `\033[38;2;<r>;<g>;<b>m` where r,g,b are 0-255
|
|
88
|
+
- **Background**: `\033[48;2;<r>;<g>;<b>m` where r,g,b are 0-255
|
|
89
|
+
|
|
90
|
+
### Examples
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Brand-specific red (RGB: 255, 59, 48)
|
|
94
|
+
\033[38;2;255;59;48m
|
|
95
|
+
|
|
96
|
+
# Brand-specific blue (RGB: 0, 122, 255)
|
|
97
|
+
\033[38;2;0;122;255m
|
|
98
|
+
|
|
99
|
+
# Custom gray (RGB: 142, 142, 147)
|
|
100
|
+
\033[38;2;142;142;147m
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Combining Codes
|
|
104
|
+
|
|
105
|
+
Multiple styles can be combined using semicolons:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Bold red text
|
|
109
|
+
\033[1;31m
|
|
110
|
+
|
|
111
|
+
# Underlined bright green
|
|
112
|
+
\033[4;92m
|
|
113
|
+
|
|
114
|
+
# Bold, underlined cyan on dark gray background
|
|
115
|
+
\033[1;4;36;100m
|
|
116
|
+
|
|
117
|
+
# 256-color bold blue
|
|
118
|
+
\033[1;38;5;27m
|
|
119
|
+
|
|
120
|
+
# RGB true color bold
|
|
121
|
+
\033[1;38;2;255;59;48m
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Compatibility Notes
|
|
125
|
+
|
|
126
|
+
### Terminal Support
|
|
127
|
+
|
|
128
|
+
| Feature | Support Level | Notes |
|
|
129
|
+
|---------------|--------------|--------------------------------------|
|
|
130
|
+
| 16 colors | Universal | Safe to use everywhere |
|
|
131
|
+
| Bold/Dim | Universal | Widely supported |
|
|
132
|
+
| Underline | Universal | Widely supported |
|
|
133
|
+
| Italic | Limited | Unreliable, avoid in production |
|
|
134
|
+
| Blink | Limited | Accessibility issue, avoid |
|
|
135
|
+
| 256 colors | Good | Most modern terminals, test first |
|
|
136
|
+
| RGB colors | Moderate | Many modern terminals, fallback needed |
|
|
137
|
+
|
|
138
|
+
### Detection Strategy
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Check COLORTERM environment variable
|
|
142
|
+
if [ "$COLORTERM" = "truecolor" ] || [ "$COLORTERM" = "24bit" ]; then
|
|
143
|
+
# RGB true color supported
|
|
144
|
+
elif [ "$TERM" = "xterm-256color" ]; then
|
|
145
|
+
# 256 colors supported
|
|
146
|
+
else
|
|
147
|
+
# Use basic 16 colors only
|
|
148
|
+
fi
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Best Practices
|
|
152
|
+
|
|
153
|
+
### 1. Stick to Basic Colors for Maximum Compatibility
|
|
154
|
+
Use the 16 basic colors for critical information. Reserve 256/RGB for branding or progressive enhancement.
|
|
155
|
+
|
|
156
|
+
### 2. Always Reset After Styling
|
|
157
|
+
```bash
|
|
158
|
+
echo "\033[32mSuccess!\033[0m" # Good
|
|
159
|
+
echo "\033[32mSuccess!" # Bad - affects subsequent output
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### 3. Provide Monochrome Fallback
|
|
163
|
+
Ensure meaning isn't conveyed through color alone. Use symbols and text:
|
|
164
|
+
```bash
|
|
165
|
+
echo "✓ \033[32mSuccess\033[0m" # Good - symbol + color
|
|
166
|
+
echo "\033[32mSuccess\033[0m" # Risky - color only
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### 4. Respect User Preferences
|
|
170
|
+
- Check `NO_COLOR` environment variable
|
|
171
|
+
- Detect if output is piped/redirected
|
|
172
|
+
- Support `--no-color` flag
|
|
173
|
+
|
|
174
|
+
### 5. Test in Multiple Terminals
|
|
175
|
+
- macOS Terminal
|
|
176
|
+
- iTerm2
|
|
177
|
+
- Windows Terminal
|
|
178
|
+
- VS Code integrated terminal
|
|
179
|
+
- Linux terminals (GNOME Terminal, Konsole, etc.)
|
|
180
|
+
|
|
181
|
+
## Quick Reference: Semantic Color Usage
|
|
182
|
+
|
|
183
|
+
| Meaning | Recommended Color | Code |
|
|
184
|
+
|--------------|------------------|------------|
|
|
185
|
+
| Success | Green | `\033[32m` |
|
|
186
|
+
| Error | Red | `\033[31m` |
|
|
187
|
+
| Warning | Yellow | `\033[33m` |
|
|
188
|
+
| Info | Blue | `\033[34m` |
|
|
189
|
+
| Highlight | Cyan | `\033[36m` |
|
|
190
|
+
| Subtle | Bright Black (Gray) | `\033[90m` |
|
|
191
|
+
| Emphasis | Bold | `\033[1m` |
|
|
192
|
+
| Link | Blue Underline | `\033[4;34m` |
|
|
193
|
+
|
|
194
|
+
## Language-Specific Libraries
|
|
195
|
+
|
|
196
|
+
### JavaScript/Node.js
|
|
197
|
+
- `chalk` - Terminal string styling
|
|
198
|
+
- `kleur` - Lightweight alternative to chalk
|
|
199
|
+
- `picocolors` - Minimal ANSI color library
|
|
200
|
+
|
|
201
|
+
### Python
|
|
202
|
+
- `colorama` - Cross-platform colored terminal text
|
|
203
|
+
- `termcolor` - ANSI color formatting
|
|
204
|
+
- `rich` - Advanced terminal formatting
|
|
205
|
+
|
|
206
|
+
### Go
|
|
207
|
+
- `fatih/color` - Color package for Go
|
|
208
|
+
- `charmbracelet/lipgloss` - Style definitions for TUI
|
|
209
|
+
|
|
210
|
+
### Rust
|
|
211
|
+
- `colored` - Coloring terminal
|
|
212
|
+
- `ansi_term` - ANSI terminal colors and styles
|
|
213
|
+
|
|
214
|
+
### Ruby
|
|
215
|
+
- `colorize` - String coloring
|
|
216
|
+
- `tty-color` - Terminal color capabilities detection
|
|
217
|
+
|
|
218
|
+
## Additional Resources
|
|
219
|
+
|
|
220
|
+
- ANSI Escape Codes Standard: ECMA-48
|
|
221
|
+
- Terminal emulator test suite: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
|
|
222
|
+
- Color testing tool: https://github.com/termstandard/colors
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
gh issue - Manage issues
|
|
2
|
+
|
|
3
|
+
USAGE
|
|
4
|
+
gh issue <command> [flags]
|
|
5
|
+
|
|
6
|
+
CORE COMMANDS
|
|
7
|
+
create: Create a new issue
|
|
8
|
+
list: List issues in a repository
|
|
9
|
+
view: Display the details of an issue
|
|
10
|
+
close: Close an issue
|
|
11
|
+
reopen: Reopen a closed issue
|
|
12
|
+
comment: Add a comment to an issue
|
|
13
|
+
edit: Edit an issue
|
|
14
|
+
status: Show status of relevant issues
|
|
15
|
+
|
|
16
|
+
ADDITIONAL COMMANDS
|
|
17
|
+
delete: Delete an issue
|
|
18
|
+
lock: Lock issue conversation
|
|
19
|
+
pin: Pin an issue
|
|
20
|
+
transfer: Transfer issue to another repository
|
|
21
|
+
unlock: Unlock issue conversation
|
|
22
|
+
unpin: Unpin an issue
|
|
23
|
+
|
|
24
|
+
FLAGS
|
|
25
|
+
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
|
26
|
+
|
|
27
|
+
INHERITED FLAGS
|
|
28
|
+
--help Show help for command
|
|
29
|
+
|
|
30
|
+
EXAMPLES
|
|
31
|
+
$ gh issue create --title "Bug report" --body "Something is broken"
|
|
32
|
+
$ gh issue list --assignee @me --state open
|
|
33
|
+
$ gh issue view 123 --web
|
|
34
|
+
$ gh issue close 456 --comment "Fixed in PR #789"
|
|
35
|
+
|
|
36
|
+
LEARN MORE
|
|
37
|
+
Use 'gh <command> <subcommand> --help' for more information about a command.
|
|
38
|
+
Read the manual at https://cli.github.com/manual
|
|
39
|
+
|
|
40
|
+
FEEDBACK
|
|
41
|
+
Open an issue using 'gh issue create -R cli/cli'
|
dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/examples/interactive-prompt-example.txt
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Creating a new issue in cli/cli
|
|
2
|
+
|
|
3
|
+
? Title: Fix color rendering in Windows Terminal
|
|
4
|
+
|
|
5
|
+
? Body: <Received>
|
|
6
|
+
What's the issue?
|
|
7
|
+
|
|
8
|
+
When running `gh issue list` in Windows Terminal, the ANSI color codes
|
|
9
|
+
are not rendering correctly. Text appears with escape sequences visible
|
|
10
|
+
instead of colored output.
|
|
11
|
+
|
|
12
|
+
Steps to reproduce:
|
|
13
|
+
1. Open Windows Terminal
|
|
14
|
+
2. Run `gh issue list`
|
|
15
|
+
3. Observe raw ANSI codes in output
|
|
16
|
+
|
|
17
|
+
Expected: Colored, formatted output
|
|
18
|
+
Actual: Raw escape sequences visible
|
|
19
|
+
|
|
20
|
+
? What labels should be added? (Press <space> to select, <enter> to submit)
|
|
21
|
+
◯ bug
|
|
22
|
+
◉ enhancement
|
|
23
|
+
◯ documentation
|
|
24
|
+
◯ help wanted
|
|
25
|
+
◉ windows
|
|
26
|
+
◯ good first issue
|
|
27
|
+
|
|
28
|
+
? What's the next action?
|
|
29
|
+
→ Create issue
|
|
30
|
+
Create issue and open in browser
|
|
31
|
+
Save as draft
|
|
32
|
+
Cancel
|
|
33
|
+
|
|
34
|
+
✓ Created issue #4524: Fix color rendering in Windows Terminal
|
|
35
|
+
https://github.com/cli/cli/issues/4524
|
|
36
|
+
|
|
37
|
+
───────────────────────────────────────────────────────────────────
|
|
38
|
+
|
|
39
|
+
Note: This example demonstrates:
|
|
40
|
+
- Clear question prompts with context
|
|
41
|
+
- Multi-line text input (indicated by <Received>)
|
|
42
|
+
- Multi-select checkboxes (◯ unchecked, ◉ checked)
|
|
43
|
+
- Radio selection menu (→ indicates current selection)
|
|
44
|
+
- Success confirmation with symbol and link
|
|
45
|
+
- Visual separator for command completion
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Showing 15 of 127 issues in cli/cli
|
|
2
|
+
|
|
3
|
+
#4523 Fix help text formatting for nested commands (enhancement) 20h
|
|
4
|
+
#4521 Add support for GitHub Enterprise Server 3.8 (feature) 1d
|
|
5
|
+
#4518 Bug: color output in piped commands (bug) 2d
|
|
6
|
+
#4510 Documentation improvements for auth commands (documentation) 4d
|
|
7
|
+
#4507 Performance: speed up repository clone operations (enhancement) 5d
|
|
8
|
+
#4498 Add interactive mode for issue creation (feature) 1w
|
|
9
|
+
#4492 Fix crash when using --web flag without browser (bug) 1w
|
|
10
|
+
#4485 Improve error messages for network failures (enhancement) 2w
|
|
11
|
+
#4478 Support custom templates for pull requests (feature) 2w
|
|
12
|
+
#4471 Update dependencies to latest versions (maintenance) 2w
|
|
13
|
+
#4465 Add bash completion for subcommands (enhancement) 3w
|
|
14
|
+
#4459 Fix regression in release list command (bug) 3w
|
|
15
|
+
#4451 Support for organization-level configurations (feature) 1mo
|
|
16
|
+
#4447 Improve accessibility of table output (accessibility) 1mo
|
|
17
|
+
#4440 Add support for draft pull requests in list view (enhancement) 1mo
|
|
18
|
+
|
|
19
|
+
Legend:
|
|
20
|
+
• Green = open
|
|
21
|
+
• Red = closed
|
|
22
|
+
• Yellow = draft
|
|
23
|
+
• Gray = secondary information
|
|
24
|
+
|
|
25
|
+
Note: Times shown are relative to current date
|