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.
Files changed (108) hide show
  1. dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/SKILL.md +223 -0
  2. dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/ansi-color-reference.md +222 -0
  3. dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/examples/help-text-example.txt +41 -0
  4. dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/examples/interactive-prompt-example.txt +45 -0
  5. dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/examples/list-view-example.txt +25 -0
  6. dot_ai_evals-0.1.0/.agents/skills/cli-ux-designer/references/unicode-symbols.md +335 -0
  7. dot_ai_evals-0.1.0/.github/workflows/release.yml +80 -0
  8. dot_ai_evals-0.1.0/.gitignore +25 -0
  9. dot_ai_evals-0.1.0/CHANGELOG.md +13 -0
  10. dot_ai_evals-0.1.0/LICENSE +21 -0
  11. dot_ai_evals-0.1.0/PKG-INFO +177 -0
  12. dot_ai_evals-0.1.0/README.md +141 -0
  13. dot_ai_evals-0.1.0/ai_eval/__init__.py +13 -0
  14. dot_ai_evals-0.1.0/ai_eval/__main__.py +6 -0
  15. dot_ai_evals-0.1.0/ai_eval/bootstrap/__init__.py +23 -0
  16. dot_ai_evals-0.1.0/ai_eval/bootstrap/golden_writer.py +107 -0
  17. dot_ai_evals-0.1.0/ai_eval/bootstrap/sitecustomize.py +185 -0
  18. dot_ai_evals-0.1.0/ai_eval/bootstrap/tracer.py +220 -0
  19. dot_ai_evals-0.1.0/ai_eval/bootstrap/wrappers.py +172 -0
  20. dot_ai_evals-0.1.0/ai_eval/cli/__init__.py +0 -0
  21. dot_ai_evals-0.1.0/ai_eval/cli/analyze.py +330 -0
  22. dot_ai_evals-0.1.0/ai_eval/cli/app.py +276 -0
  23. dot_ai_evals-0.1.0/ai_eval/cli/bootstrap.py +169 -0
  24. dot_ai_evals-0.1.0/ai_eval/cli/config_cmd.py +58 -0
  25. dot_ai_evals-0.1.0/ai_eval/cli/diff.py +160 -0
  26. dot_ai_evals-0.1.0/ai_eval/cli/doctor.py +171 -0
  27. dot_ai_evals-0.1.0/ai_eval/cli/history.py +67 -0
  28. dot_ai_evals-0.1.0/ai_eval/cli/init.py +371 -0
  29. dot_ai_evals-0.1.0/ai_eval/cli/judge.py +175 -0
  30. dot_ai_evals-0.1.0/ai_eval/cli/render/__init__.py +0 -0
  31. dot_ai_evals-0.1.0/ai_eval/cli/render/json_out.py +24 -0
  32. dot_ai_evals-0.1.0/ai_eval/cli/render/tables.py +278 -0
  33. dot_ai_evals-0.1.0/ai_eval/cli/render/theme.py +44 -0
  34. dot_ai_evals-0.1.0/ai_eval/cli/report.py +106 -0
  35. dot_ai_evals-0.1.0/ai_eval/cli/rubric_engine.py +134 -0
  36. dot_ai_evals-0.1.0/ai_eval/cli/run.py +178 -0
  37. dot_ai_evals-0.1.0/ai_eval/cli/stubs.py +34 -0
  38. dot_ai_evals-0.1.0/ai_eval/config/__init__.py +0 -0
  39. dot_ai_evals-0.1.0/ai_eval/config/defaults.py +60 -0
  40. dot_ai_evals-0.1.0/ai_eval/config/loader.py +182 -0
  41. dot_ai_evals-0.1.0/ai_eval/config/schema.py +200 -0
  42. dot_ai_evals-0.1.0/ai_eval/inference/__init__.py +0 -0
  43. dot_ai_evals-0.1.0/ai_eval/inference/ast_scan.py +321 -0
  44. dot_ai_evals-0.1.0/ai_eval/inference/detectors/__init__.py +0 -0
  45. dot_ai_evals-0.1.0/ai_eval/inference/detectors/_langchain_retrieval.py +154 -0
  46. dot_ai_evals-0.1.0/ai_eval/inference/detectors/base.py +60 -0
  47. dot_ai_evals-0.1.0/ai_eval/inference/detectors/chromadb.py +66 -0
  48. dot_ai_evals-0.1.0/ai_eval/inference/detectors/langchain.py +162 -0
  49. dot_ai_evals-0.1.0/ai_eval/inference/detectors/langgraph.py +142 -0
  50. dot_ai_evals-0.1.0/ai_eval/inference/detectors/openai_chat.py +67 -0
  51. dot_ai_evals-0.1.0/ai_eval/inference/detectors/openai_responses.py +82 -0
  52. dot_ai_evals-0.1.0/ai_eval/inference/detectors/openai_tools.py +69 -0
  53. dot_ai_evals-0.1.0/ai_eval/inference/detectors/pgvector.py +143 -0
  54. dot_ai_evals-0.1.0/ai_eval/inference/hints.py +101 -0
  55. dot_ai_evals-0.1.0/ai_eval/inference/prompts/classify_task.txt +32 -0
  56. dot_ai_evals-0.1.0/ai_eval/inference/prompts/empty_recover.txt +31 -0
  57. dot_ai_evals-0.1.0/ai_eval/inference/prompts/few_shot.yaml +123 -0
  58. dot_ai_evals-0.1.0/ai_eval/inference/signatures.py +172 -0
  59. dot_ai_evals-0.1.0/ai_eval/inference/slm/__init__.py +29 -0
  60. dot_ai_evals-0.1.0/ai_eval/inference/slm/builder.py +576 -0
  61. dot_ai_evals-0.1.0/ai_eval/inference/slm/cache.py +117 -0
  62. dot_ai_evals-0.1.0/ai_eval/inference/slm/client.py +80 -0
  63. dot_ai_evals-0.1.0/ai_eval/inference/slm/evidence.py +185 -0
  64. dot_ai_evals-0.1.0/ai_eval/inference/slm/prompts.py +68 -0
  65. dot_ai_evals-0.1.0/ai_eval/inference/slm/validation.py +137 -0
  66. dot_ai_evals-0.1.0/ai_eval/inference/synthesize.py +137 -0
  67. dot_ai_evals-0.1.0/ai_eval/insights/__init__.py +17 -0
  68. dot_ai_evals-0.1.0/ai_eval/insights/diff.py +40 -0
  69. dot_ai_evals-0.1.0/ai_eval/insights/history.py +138 -0
  70. dot_ai_evals-0.1.0/ai_eval/insights/root_cause.py +115 -0
  71. dot_ai_evals-0.1.0/ai_eval/judge/__init__.py +31 -0
  72. dot_ai_evals-0.1.0/ai_eval/judge/cache.py +87 -0
  73. dot_ai_evals-0.1.0/ai_eval/judge/gateway.py +193 -0
  74. dot_ai_evals-0.1.0/ai_eval/judge/instructor_glue.py +67 -0
  75. dot_ai_evals-0.1.0/ai_eval/judge/prompts/__init__.py +15 -0
  76. dot_ai_evals-0.1.0/ai_eval/judge/prompts/checklist_basic.py +57 -0
  77. dot_ai_evals-0.1.0/ai_eval/judge/prompts/cot_complex.py +59 -0
  78. dot_ai_evals-0.1.0/ai_eval/judge/schemas.py +54 -0
  79. dot_ai_evals-0.1.0/ai_eval/judge/tiering.py +39 -0
  80. dot_ai_evals-0.1.0/ai_eval/metrics/__init__.py +35 -0
  81. dot_ai_evals-0.1.0/ai_eval/metrics/judge_builtin.py +309 -0
  82. dot_ai_evals-0.1.0/ai_eval/metrics/registry.py +369 -0
  83. dot_ai_evals-0.1.0/ai_eval/runner/__init__.py +37 -0
  84. dot_ai_evals-0.1.0/ai_eval/runner/engine.py +357 -0
  85. dot_ai_evals-0.1.0/ai_eval/runner/git.py +39 -0
  86. dot_ai_evals-0.1.0/ai_eval/runner/metrics/__init__.py +3 -0
  87. dot_ai_evals-0.1.0/ai_eval/runner/metrics/latency.py +38 -0
  88. dot_ai_evals-0.1.0/ai_eval/runner/record.py +100 -0
  89. dot_ai_evals-0.1.0/ai_eval/runner/thresholds.py +96 -0
  90. dot_ai_evals-0.1.0/ai_eval/scaffold/__init__.py +0 -0
  91. dot_ai_evals-0.1.0/ai_eval/scaffold/gitignore_patch.py +24 -0
  92. dot_ai_evals-0.1.0/ai_eval/scaffold/golden_writer.py +130 -0
  93. dot_ai_evals-0.1.0/ai_eval/scaffold/hints_writer.py +50 -0
  94. dot_ai_evals-0.1.0/ai_eval/scaffold/rubrics_writer.py +42 -0
  95. dot_ai_evals-0.1.0/ai_eval/scaffold/templates/__init__.py +0 -0
  96. dot_ai_evals-0.1.0/ai_eval/scaffold/templates/tests_py.tmpl +27 -0
  97. dot_ai_evals-0.1.0/ai_eval/scaffold/tests_writer.py +18 -0
  98. dot_ai_evals-0.1.0/ai_eval/storage/__init__.py +0 -0
  99. dot_ai_evals-0.1.0/ai_eval/storage/locks.py +49 -0
  100. dot_ai_evals-0.1.0/ai_eval/storage/paths.py +76 -0
  101. dot_ai_evals-0.1.0/ai_eval/storage/runs.py +75 -0
  102. dot_ai_evals-0.1.0/ai_eval/telemetry/__init__.py +0 -0
  103. dot_ai_evals-0.1.0/ai_eval/telemetry/logger.py +72 -0
  104. dot_ai_evals-0.1.0/ai_eval/telemetry/progress.py +34 -0
  105. dot_ai_evals-0.1.0/docs/how-it-works.html +1076 -0
  106. dot_ai_evals-0.1.0/pyproject.toml +98 -0
  107. dot_ai_evals-0.1.0/skills-lock.json +11 -0
  108. 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'
@@ -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