关于 ascii-progress-and-spinner
ascii-progress-and-spinner 是用于设计 ASCII 进度条和 Spinner 的技能,涵盖渲染规则与降级行为,适合需要兼顾交互式终端和重定向日志的输出。
主要功能
- 01确定进度条样式
- 02不确定进度 Spinner 样式
- 03TTY 单行刷新规则
- 04非 TTY 日志行降级
- 05可配置宽度与百分比显示
- 06纯 ASCII 样式选项
适用场景
- 01设计终端进度指示器
- 02在交互式输出中显示加载状态
- 03在重定向日志中报告进度
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ full-stack-skills/ ascii-skills --skill ascii-progress-and-spinner安装后在 Claude Code 中输入/ascii-progress-and-spinner确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSE.txtagents/openai.yamlexamples/styles.mdscripts/demo.py详细介绍
使用此技能的时机
关键触发规则
- 仅当用户明确提及技能的确切名称:
ascii-progress-and-spinner时,才使用此技能。
触发短语包括:
- “ascii-progress-and-spinner”
- “使用 ascii-progress-and-spinner”
- “用 ascii-progress-and-spinner 生成 ASCII 进度条”
- “使用 ascii-progress-and-spinner 做 spinner / loading”
边界
- 不要集成特定的 UI 框架;输出样式、刷新规则、降级协议和示例。
- 必须涵盖:
- 确定进度条
- 不确定进度的 Spinner
- 非 TTY / 重定向输出降级(输出日志行,不使用回车符更新)
如何使用此技能
输入
- mode(determinate | indeterminate)
- width(默认 40)
- showPercent(默认 true)
- showEta(可选)
- multiTask(可选)
- colorMode(none | ansi256,默认 none)
输出(必需)
- progressBarStyles(至少 3 种)
- spinnerStyles(至少 2 种)
- renderRules(TTY 单行刷新 vs logLines)
- fallbackRules(非交互 / 重定向输出)
建议的渲染规则
- TTY(交互式): 单行刷新(覆盖上一行),避免刷屏
- 非 TTY(日志): 输出日志行(不覆盖)。每行可包含任务名称和百分比。
脚本
scripts/demo.py:进度条和 Spinner 形状的本地演示
示例
examples/styles.md
质量检查清单
- 固定宽度(百分比字段固定宽度,以避免抖动)
- 日志模式便于 grep(不覆盖)
- 提供仅含 ASCII 字符的默认样式(避免宽度不明确的 Unicode 字符)
关键词
英文: ascii-progress-and-spinner, progress bar, spinner, loading, tty, non-interactive, log output, ascii 中文: ascii-progress-and-spinner, 进度条, Spinner, Loading, 终端, TTY, 日志降级, ASCII
常见陷阱(Gotchas)
- 版本兼容性: 注意框架版本与依赖库的兼容性,不同版本 API 可能有差异
- 配置文件格式: 配置文件格式错误是最常见的问题,建议使用编辑器的语法检查
- 环境变量: 确保所有必要的环境变量已正确设置,敏感信息不要硬编码
- 依赖冲突: 多版本共存时注意依赖冲突,使用 lock 文件锁定版本
- 性能陷阱: 大数据量场景下注意性能优化,避免 N+1 查询等常见问题
使用流程
步骤 1:环境准备
确保开发环境已安装必要的依赖和工具。
步骤 2:配置初始化
根据项目需求进行基础配置。
步骤 3:使用核心功能
按照示例代码实现核心功能。
步骤 4:测试验证
运行测试,确保功能正常。
步骤 5:部署上线
完成开发后进行部署和监控。
评论
支持 Markdown