关于 bash-script-generator
bash-script-generator 是用于生成 Bash 脚本的技能,面向将需求或手动 CLI 步骤转为自动化脚本的用户。它通过需求记录、模板或定制生成及验证迭代,追踪实现与需求的对应关系。
主要功能
- 01收集输入、输出与安全需求
- 02按决策流程选择模板或定制生成
- 03提供标准 CLI 脚本骨架
- 04依据脚本需求选择参考文档
- 05运行验证并迭代修正
适用场景
- 01将手动 CLI 步骤自动化
- 02创建文本处理或运维脚本
- 03生成 cron 或 CI 实用脚本
- 04根据需求生成并验证 Bash 脚本
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ akin-ozer/ cc-devops-skills --skill bash-script-generator安装后在 Claude Code 中输入/bash-script-generator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/templates/standard-template.shdocs/bash-scripting-guide.mdgeneration-best-practices.mdscript-patterns.mdtext-processing-guide.mdexamples/log-analyzer.shscripts/generate_script_template.shrun_ci_checks.shtest_generator.sh详细介绍
Bash 脚本生成器
概述
生成可用于生产环境的 Bash 脚本,明确收集需求,采用确定性的生成流程,并以验证优先的方式迭代。
触发语句
用户提出以下请求时,使用此技能:
- 创建、生成、编写或构建 Bash/shell 脚本
- 将手动 CLI 步骤转换为自动化脚本
- 使用
grep、awk或sed构建文本处理脚本 - 创建运维辅助脚本、cron 脚本或 CI 工具脚本
如果用户只是要求验证现有脚本,请勿使用此技能。对于仅要求验证的请求,请使用 devops-skills:bash-script-validator。
执行模型
按顺序执行各阶段。不要跳过任何阶段;遇到阻碍时,使用文档中说明的备用方案。
阶段 0:预检
- 确认范围和目标输出路径。
- 确认目标 shell:
- 默认:
bash - 如需可移植性:POSIX
sh
- 检查可用能力并选择备用方案:
| 能力 | 默认方案 | 备用方案 |
|---|---|---|
| 需求澄清 | AskUserQuestion 工具 | 在普通聊天中提出相同问题;将未解决的事项标记为假设 |
| 脚本框架 | bash scripts/generate_script_template.sh ... | 手动复制 assets/templates/standard-template.sh,或手工编写最小框架 |
| 验证 | devops-skills:bash-script-validator | 本地检查:bash -n、可用时运行 shellcheck,POSIX 模式下运行 sh -n |
如果使用了备用方案,请在最终摘要中明确说明。
阶段 1:收集需求
仅收集正确生成脚本所需的信息:
- 输入来源和格式
- 输出目标和格式
- 错误处理行为(快速失败/重试/继续)
- 安全约束(敏感数据、权限级别)
- 性能约束(大文件、并行处理)
- 可移植性要求(仅限 Bash 或 POSIX)
然后创建包含稳定 ID 的 Captured Requirements 表。
## Captured Requirements
| Requirement ID | Description | Source | Implementation Plan |
|---|---|---|---|
| REQ-001 | Parse nginx logs from file input | User | `parse_args()` + `validate_file()` + `awk` parser |
| REQ-002 | Output top 10 errors | User | `analyze_errors()` + `sort | uniq -c | head -10` |
| REQ-003 | Handle large files efficiently | Assumption | Single-pass `awk`; avoid multi-pass loops |
规则:
- 每项主要设计决策至少对应一个
REQ-*。 - 明确列出假设,并尽量减少假设。
阶段 2:选择生成方案
使用以下确定性决策树:
Need multi-command architecture, unusual control flow, or strict non-template conventions?
├─ Yes -> Custom generation
└─ No
Need standard CLI skeleton (usage/logging/arg parsing/cleanup)?
├─ Yes -> Template-first generation
└─ No -> Custom generation
对于单一用途的 CLI 工具,默认采用模板优先方案。
阶段 3:仅加载相关参考资料
采用渐进式披露。只阅读当前请求所需的文档。
| 需求 | 参考资料 |
|---|---|
工具选择(grep、awk 还是 sed) | docs/text-processing-guide.md |
| 脚本结构和参数模式 | docs/script-patterns.md |
| 严格模式、shell 差异和安全性 | docs/bash-scripting-guide.md |
| 命名、组织和质量基线 | docs/generation-best-practices.md |
引用格式(必需):
[Ref: docs/<file>.md -> <section>]
阶段 4:生成脚本
路径 A:模板优先(默认)
- 生成框架:
bash scripts/generate_script_template.sh standard output-script.sh
- 替换占位符并添加业务逻辑。
- 除非需求另有说明,否则日志输出到 stderr,数据输出到 stdout。
- 仅在逻辑不明显时添加注释。
路径 B:自定义生成
构建的脚本至少应包含:
- Shebang 和严格模式
usage()parse_args()- 输入验证和依赖项检查
- 主工作流函数
- 可预测的退出码
阶段 5:验证并迭代
默认验证方案:
- 调用
devops-skills:bash-script-validator - 应用修复
- 重新运行验证
- 重复以上步骤,直到检查通过或确认存在阻碍
备用验证方案(验证器技能不可用时):
# Deterministic local gate for this skill:
bash scripts/run_ci_checks.sh --skip-shellcheck
# CI gate (shellcheck required):
bash scripts/run_ci_checks.sh --require-shellcheck
如果跳过任何检查,请在输出中包含 Skipped check、Reason 和 Risk。
阶段 6:最终回复要求
始终返回:
- 生成的脚本路径
- 需求可追溯性(
REQ-*-> 实现) - 验证结果及重新运行状态
- 标准格式的引用
- 使用的任何假设或备用方案
规范示例流程
示例 A:完整流程(模板优先)
- 澄清缺失的数据格式和输出预期。
- 记录
REQ-*表格。 - 选择模板优先路径。
- 使用
scripts/generate_script_template.sh生成脚手架。 - 实现逻辑,并将函数映射到
REQ-*。 - 使用
devops-skills:bash-script-validator验证,并反复运行直到无问题。 - 返回包含引用的最终摘要。
示例 B:受限环境流程
当 AskUserQuestion、验证器技能或 shellcheck 不可用时,使用此流程:
- 在聊天中提出澄清问题。
- 在
Captured Requirements中将未解决事项标记为假设。 - 从模板脚本生成,或使用模板文件副本作为备用方案。
- 运行
bash -n(如果相关,也运行sh -n)。 - 如果缺少
shellcheck,报告跳过检查及其风险和缓解措施。
完成标准
只有满足以下所有条件,任务才算完成:
- 已匹配触发条件并确认范围
- 存在包含
REQ-*ID 的Captured Requirements表格 - 已记录模板优先与自定义方案之间的选择
- 已使用确定性结构生成脚本
- 已执行验证并应用重新运行策略
- 任何跳过的检查都说明了明确原因和风险
- 最终回复包含可追溯性、引用和假设
辅助脚本和资源
- 脚本生成器:
scripts/generate_script_template.sh - 确定性 CI 门禁:
scripts/run_ci_checks.sh - 回归测试套件:
scripts/test_generator.sh - 标准脚手架:
assets/templates/standard-template.sh - 示例输出样式:
examples/log-analyzer.sh
参考文档
docs/bash-scripting-guide.mddocs/script-patterns.mddocs/generation-best-practices.mddocs/text-processing-guide.md
外部参考
评论
支持 Markdown