mcpField
B
bash-script-generator

bash-script-generator

github.com/akin-ozer开发329675 次安装16 周前更新
代码仓库

关于 bash-script-generator

bash-script-generator 是用于生成 Bash 脚本的技能,面向将需求或手动 CLI 步骤转为自动化脚本的用户。它通过需求记录、模板或定制生成及验证迭代,追踪实现与需求的对应关系。

主要功能

  1. 01收集输入、输出与安全需求
  2. 02按决策流程选择模板或定制生成
  3. 03提供标准 CLI 脚本骨架
  4. 04依据脚本需求选择参考文档
  5. 05运行验证并迭代修正

适用场景

  1. 01将手动 CLI 步骤自动化
  2. 02创建文本处理或运维脚本
  3. 03生成 cron 或 CI 实用脚本
  4. 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.sh
docs/
bash-scripting-guide.md
generation-best-practices.md
script-patterns.md
text-processing-guide.md
examples/
log-analyzer.sh
scripts/
generate_script_template.sh
run_ci_checks.sh
test_generator.sh

详细介绍

Bash 脚本生成器

概述

生成可用于生产环境的 Bash 脚本,明确收集需求,采用确定性的生成流程,并以验证优先的方式迭代。

触发语句

用户提出以下请求时,使用此技能:

  • 创建、生成、编写或构建 Bash/shell 脚本
  • 将手动 CLI 步骤转换为自动化脚本
  • 使用 grep、awk 或 sed 构建文本处理脚本
  • 创建运维辅助脚本、cron 脚本或 CI 工具脚本

如果用户只是要求验证现有脚本,请勿使用此技能。对于仅要求验证的请求,请使用 devops-skills:bash-script-validator。

执行模型

按顺序执行各阶段。不要跳过任何阶段;遇到阻碍时,使用文档中说明的备用方案。

阶段 0:预检
  1. 确认范围和目标输出路径。
  2. 确认目标 shell:
  • 默认:bash
  • 如需可移植性:POSIX sh
  1. 检查可用能力并选择备用方案:
能力默认方案备用方案
需求澄清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:模板优先(默认)
  1. 生成框架:
bash scripts/generate_script_template.sh standard output-script.sh
  1. 替换占位符并添加业务逻辑。
  2. 除非需求另有说明,否则日志输出到 stderr,数据输出到 stdout。
  3. 仅在逻辑不明显时添加注释。
路径 B:自定义生成

构建的脚本至少应包含:

  • Shebang 和严格模式
  • usage()
  • parse_args()
  • 输入验证和依赖项检查
  • 主工作流函数
  • 可预测的退出码
阶段 5:验证并迭代

默认验证方案:

  1. 调用 devops-skills:bash-script-validator
  2. 应用修复
  3. 重新运行验证
  4. 重复以上步骤,直到检查通过或确认存在阻碍

备用验证方案(验证器技能不可用时):

# 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:最终回复要求

始终返回:

  1. 生成的脚本路径
  2. 需求可追溯性(REQ-* -> 实现)
  3. 验证结果及重新运行状态
  4. 标准格式的引用
  5. 使用的任何假设或备用方案

规范示例流程

示例 A:完整流程(模板优先)
  1. 澄清缺失的数据格式和输出预期。
  2. 记录 REQ-* 表格。
  3. 选择模板优先路径。
  4. 使用 scripts/generate_script_template.sh 生成脚手架。
  5. 实现逻辑,并将函数映射到 REQ-*。
  6. 使用 devops-skills:bash-script-validator 验证,并反复运行直到无问题。
  7. 返回包含引用的最终摘要。
示例 B:受限环境流程

当 AskUserQuestion、验证器技能或 shellcheck 不可用时,使用此流程:

  1. 在聊天中提出澄清问题。
  2. 在 Captured Requirements 中将未解决事项标记为假设。
  3. 从模板脚本生成,或使用模板文件副本作为备用方案。
  4. 运行 bash -n(如果相关,也运行 sh -n)。
  5. 如果缺少 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.md
  • docs/script-patterns.md
  • docs/generation-best-practices.md
  • docs/text-processing-guide.md

外部参考

评论

支持 Markdown