mcpField
H
huawei-cloud-skill-creator

huawei-cloud-skill-creator

github.com/huaweicloudAgent 工作流59560 次安装2 天前更新
代码仓库

关于 huawei-cloud-skill-creator

Huawei Cloud Skill Creator 通过强制的六阶段流程创建华为云管理技能,涵盖需求分析、技术研究、文档生成、测试、清理和合规检查。它只生成技能包,不直接操作云资源。

主要功能

  1. 01六阶段技能创建流程
  2. 02逐步问答式需求分析
  3. 03CLI、SDK、API 研究回退
  4. 04生成技能文档
  5. 05测试、清理与合规检查

适用场景

  1. 01为华为云服务创建技能
  2. 02将确认的需求整理为技能包
  3. 03研究 CLI、SDK 或 API 操作支持情况
  4. 04测试并验证生成的技能

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-skill-creator

安装后在 Claude Code 中输入/huawei-cloud-skill-creator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
acceptance-criteria.md
cli-installation-guide.md
dataflow-diagram.md
iam-policies.md
related-commands.md
verification-method.md
scripts/
ensure_cli.sh
install_cli.sh
test-cli-commands.sh
validate-skill.sh
yaml-check-frontmatter.py
templates/
test-defaults.json
test-vars.json

详细介绍

Huawei Cloud Skill Creator v2

六阶段严格流水线 — 每个阶段都依赖上一阶段的输出,且不能跳过。如果缺少任何阶段,请从缺失的阶段重新开始。


概述

Huawei Cloud Skill Creator v2 基于六阶段严格流水线:从苏格拉底式问答需求分析开始,接着进行技术调研(CLI→SDK→API 三级回退)、文档生成、测试准备、详细测试、资源清理和合规检查,最终生成符合 Huawei Cloud Skill Specification 的完整 Skill 包。它只创建和打包 Skill,不会直接操作云资源(不会创建、删除或修改 ECS、VPC、OBS 等);请用它生成管理 Skill,或使用其他专用管理 Skill 执行云资源操作。

依赖项:质量遥测数据会通过 skill-quality-cli 自动收集(如果未安装,则由 scripts/ensure_cli.sh 安装)。

预检查:需要 Huawei Cloud 凭证

强制门槛。 在调用任何 hcloud / huaweicloudsdk 命令之前,必须通过此预检查,包括 Phase 2 调研、Phase 4/5 测试和 Phase 6 验证。如果未检测到有效的凭证配置文件,请停止并通过带外方式获取凭证。

安全规则
  • 绝不读取、回显或打印 AK/SK 值(例如,打印 HUAWEI_ACCESS_KEY 风格的环境变量值是禁止的)。
  • 绝不读取或使用 cat 查看 hcloud、obsutil、SDK 或任何其他存储机密的位置中的凭证文件。所有此类文件都应视为机密。
  • 绝不要求用户在对话或命令行中直接输入 AK/SK。
  • 绝不通过 CLI 的 cli- / cli- 参数或任何等效的带内机密输入形式,调用 hcloud configure set 并传入明文凭证字符串。
  • 仅使用 hcloud configure list 检查凭证状态 — 非交互、只读、不回显机密。
步骤 0:确保已安装 skill-quality-cli

在全新环境中运行任何封装后的 hcloud 命令之前,先运行幂等安装程序:

bash scripts/ensure_cli.sh

ensure_cli.sh 的设计是非阻塞的(即使失败也会发出警告并以状态码 0 退出),因此请确认它确实正常工作;如果 CLI 仍未安装,请运行失败即关闭的手动安装程序:

command -v skill-quality-cli >/dev/null 2>&1 && skill-quality-cli version >/dev/null 2>&1 || bash scripts/install_cli.sh

失败处理:如果运行 install_cli.sh 后 skill-quality-cli 仍不可用(网络 / 校验和 / 平台问题),请终止预检查 — 不要回退到裸用 hcloud(下方的强制包装器适用于每次 hcloud 调用;随附的 quality-CLI 安装程序会以 scripts/ensure_cli.sh + scripts/install_cli.sh 的形式包含在创建的 Skill 中)。

验证步骤

⚠️ 强制要求:此技能中的每条 hcloud 命令都必须使用 skill-quality-cli run --skill-name huawei-cloud-skill-creator -- 包装——严禁直接调用 hcloud。

skill-quality-cli run --skill-name huawei-cloud-skill-creator -- hcloud configure list
skill-quality-cli run --skill-name huawei-cloud-skill-creator -- hcloud ECS ListFlavors --cli-region=cn-north-4 --help

检查输出中是否包含有效配置文件(AK/SK,或临时安全凭证 / 代入身份的委托角色)。

如果不存在有效配置文件,请在此处停止。

  1. 从 Huawei Cloud Console → 身份与访问管理(IAM)→ 我的凭证 → 新增访问密钥获取凭证。

  2. 向用户输出以下可直接复制粘贴的环境变量设置代码块(真实值须在本会话之外填写,切勿在聊天中填写)。Agent 绝不能要求用户在对话中输入 AK/SK 值——只能输出以下模板:

    # Set Huawei Cloud credentials using the standard HUAWEICLOUD_SDK_* names
    # (read by hcloud CLI and huaweicloudsdk). The secret key is entered silently.
    export HUAWEICLOUD_SDK_AK="<your-access-key-id>"
    read -rs HUAWEICLOUD_SDK_SK; export HUAWEICLOUD_SDK_SK
    export HUAWEICLOUD_SDK_REGION="cn-north-4"
    # 临时凭证(可选): export HUAWEICLOUD_SDK_SECURITY_TOKEN="<temporary-token>"
    

    可选替代方案(仅限交互式的会话外步骤,绝不填写明文值):在用户的终端中交互式运行 hcloud configure,然后通过 hcloud configure list 验证结果。

  3. 用户确认已配置环境变量(或已运行 hcloud configure)后,重新运行 skill-quality-cli run --skill-name huawei-cloud-skill-creator -- hcloud configure list。如果配置文件有效 → 恢复第 1 阶段。如果仍然缺失 → 终止,不要继续。

**后续所有 hcloud 和 huaweicloudsdk 调用均复用当前激活的 CLI 配置文件。**不得打印或硬编码机密。不得以 obsutil config、带明文参数的 hcloud configure set、填入明文字符串而非环境变量构建的 SDK 凭证(例如,使用字符串字面量而非环境变量构建 SDK 的 BasicCredentials),或任何其他会话内输入机密的流程替代此检查关卡。

凭证来源优先级

后续调用命令时(第 2/4/5 阶段),技能按以下优先级接受凭证:

  1. 环境变量——自动扫描所有以 HUAWEI / HW / HWC 为前缀且名称包含 ACCESS_KEY / _AK / SECRET_KEY / _SK 的变量。
  2. hcloud configure list 配置文件——激活的 CLI 配置文件(在预检查中通过 hcloud configure list 验证);调用 hcloud 时优先使用。
  3. IAM 委托 / 临时凭证——AK/SK + SecurityToken(程序化访问)。

如果第 4/5 阶段测试开始时以上凭证来源均不可用,提示用户在会话外配置一次,然后重新运行预检查。如果仍不可用,终止流程——严禁跳过需要凭证的步骤。

前置条件

  1. 已安装并完成身份验证的 hcloud CLI——参考:https://support.huaweicloud.com/qs-hcli/hcli_02_003.html
    • 通过上述预检查(hcloud configure list)验证身份验证状态。
  2. Python 3.8+,并安装 huaweicloudsdk 软件包——按需安装:pip install huaweicloudsdkcore huaweicloudsdkecs。第 2/4/5 阶段开始前,使用 python3 -c "import huaweicloudsdkcore" 验证。SDK 参考:https://console.huaweicloud.com/apiexplorer/#/sdkcenter
  3. 可用的 Node.js + npx
  4. Huawei Cloud AK/SK——自动扫描所有以 HUAWEI / HW / HWC 为前缀且名称匹配 ACCESS_KEY / _AK / SECRET_KEY / _SK 的环境变量。严禁在脚本、文档或命令行中硬编码 AK/SK。
  5. API 参考:https://console.huaweicloud.com/apiexplorer/#/openapi
  • skill-quality-cli——由 bash scripts/ensure_cli.sh 确保可用(幂等;已存在时跳过)
    • 升级:手动运行 skill-quality-cli upgrade(不自动升级)
    • 禁用遥测报告:设置 SKILL_QUALITY_REPORT=0

工作流——六阶段严格流程

Phase 1 (Q&A) → Phase 2 (Tech Research) → Phase 3 (Generate MD)
    → Phase 4 (Test Prep) → Phase 5 (Detailed Testing) → Phase 6 (Cleanup & Report)

严格规则:

  • 每个阶段必须输出阶段摘要(phase-N-summary)
  • 开始每个阶段前,必须确认上一阶段的摘要文件存在
  • 完成全部 6 个阶段后,执行最终检查,确认是否有遗漏的阶段。如有遗漏,从缺失阶段重新开始
  • 严禁跳过任何阶段
  • 开始任何第 2 阶段的调研或第 4/5 阶段的执行前,必须通过「预检查:需要 Huawei Cloud 凭证」关卡
阶段 1:需求分析(苏格拉底式问答)

目标: 通过逐个提问的对话明确用户需求。

  • 每次只问 一个问题,等待用户回复
  • 涵盖以下维度:
    1. 目标服务 — 要使用哪个华为云服务?(ECS、VPC、OBS、RDS、BSS 等)
    2. 功能范围 — Skill 应执行什么操作?(查询、诊断、部署、监控、管理)
    3. 执行模式 — 首选 CLI / SDK / API?
    4. CLI 操作 — 涉及哪些操作?(List、Show、Create、Delete、Update)
    5. 触发场景 — Agent 何时会调用此 Skill?(日常巡检、故障排查、自动扩缩容)
  • 每提问 5 次或涵盖所有维度后 → 显示需求摘要表 → 等待用户确认
  • 🛑 在用户明确确认前,不得进入阶段 2

输出: phase-1-summary.json — 经用户确认的需求说明

阶段 2:技术调研(CLI→SDK→API 三级回退)

依赖: 已完成阶段 1 需求分析(存在 phase-1-summary.json)

针对阶段 1 确认的每个功能点,按以下顺序调研其可用性:

  1. CLI — hcloud 命令。运行 hcloud --cli-region=cn-north-4 --help;参数通过验证即表示该命令存在。
  2. SDK — huaweicloudsdk。运行 python3 -c "from huaweicloudsdk{service}.v2 import ...”;类导入成功即表示该 SDK 包可用。
  3. API — 仅限以下两个来源;端点必须来自可信来源,绝不可推断。

核心规则:API 端点取证(严禁猜测)

API 端点仅允许来自以下两个来源。严格禁止通过命名模式推断:

可信来源方法
① SDK 源码 _http_info / resource_path在 {service}_client.py 中 grep -A8 _http_info 方法,然后读取 resource_path 值
② 华为云 API Explorer(api-explorer.huaweicloud.com)用户在该网站上搜索并确认

❌ 严格禁止的操作:

  • 根据其他 API 路径模式推断新端点(例如,根据 coupons 端点推断 claim-vouchers 端点)
  • 根据文档描述自行构造 URI
  • 使用“常见命名模式”猜测 API 路径
  • 如果 SDK 可用,但对应功能在 _http_info 中没有方法 → 标记为 ⛔,不得推断

执行规则:

Research feature point N
  ├── CLI available → Record as CLI mode, record specific command
  ├── CLI unavailable → Check SDK
  │    ├── SDK available → Record as SDK mode
  │    │    ├── Read all _http_info methods from SDK source to obtain real REST paths
  │    │    │    grep "resource_path" <sdk_path>/{service}_client.py
  │    │    └── Feature point's corresponding method has _http_info in SDK → Record real API endpoint
  │    │         Feature point's corresponding method has no _http_info in SDK → Mark ⛔, do not infer
  │    ├── SDK unavailable → Ask user to confirm endpoint from API Explorer
  │    │    ├── User finds endpoint from API Explorer → Record as API mode, note the source
  │    │    ├── User provides endpoint (other source) → Record as API mode, mark ⚠ user-provided
  │    │    └── User cannot provide → Mark ⛔
  │    └── SDK partially available (some methods missing and no corresponding _http_info) → Mark missing features as ⛔
  └── Generate feature point research result (including execution mode + real API path if available)

🛑 严禁 Agent 自行猜测或编造 API 路径。如果 SDK 源码和 API Explorer 中都没有该端点,则标记为 ⛔——该端点不存在。

查找 SDK 客户端源码路径的提示:

python3 -c "import huaweicloudsdk{service}.v2 as m; import os; print(os.path.dirname(m.__file__))"  # package path
grep "_http_info" <path>/{service}_client.py                                                          # all API endpoints
grep -A8 "_{method}_http_info" <path>/{service}_client.py                                             # "resource_path" = real REST endpoint

输出: phase-2-summary.json — 每个功能点的执行模式(CLI/SDK/API/⛔)及相应命令/代码/API 路径

阶段 3:文档生成

依赖: 已完成阶段 2 技术调研(存在 phase-2-summary.json)

根据阶段 2 的结论生成 Skill 文件:

  1. 为 Skill 命名 — 使用 huawei-cloud-{product}-{function},并使 frontmatter 中的 name 与目录名一致。

  2. 语言 — 默认使用英语生成 SKILL.md。可在 references/ 中添加中文文档作为补充。主 SKILL.md 的 frontmatter description、章节标题、命令示例和所有说明内容都必须使用英语。

  3. Frontmatter — 包含 name、带有功能摘要和触发条件的 description,以及不超过五个标签。不要生成 version 字段。

  4. 创建目录结构:

    skills/{skill-name}/  → SKILL.md, references/ (iam-policies.md recommended; cli-installation-guide.md recommended when CLI is used; verification-method.md / dataflow-diagram.md / acceptance-criteria.md recommended), scripts/test-cli-commands.sh, scripts/ensure_cli.sh + scripts/install_cli.sh (quality CLI, required — see rule 14), templates/test-vars.json
    
  5. SKILL.md 内容生成规则:

    • CLI — 命令格式:hcloud --cli-region={region} [--params](模板;执行前请将占位符替换为实际值)
    • SDK — Python 脚本示例(python3 -c "..."),使用实际的 SDK 客户端调用
    • API — curl 命令 + 用户提供的端点(标明由用户提供)
    • Unavailable — 标明需要手动验证,不要生成具体命令
  6. SKILL.md 必需章节:

    • YAML Frontmatter(关键)——必须可通过 yaml.safe_load 解析为有效 YAML:name + description(功能摘要 + 触发条件)+ tags(列表,≤5);不得包含 version 字段
    • Overview(高优先级)——功能概述、架构、适用场景
    • Prerequisites(高优先级)——CLI 版本、身份验证配置、IAM 权限
    • Workflow(高优先级)——技能工作流步骤
    • Core Commands(高优先级)——按功能分组的命令示例(仅包含真实、可执行的命令)
    • Parameter Confirmation(高优先级)——用户可配置参数表
    • Reference Documents(关键)——指向 references/ 下文档的链接
    • KooCLI Command Format Standard(低优先级)——涉及 CLI 时必需;包含服务、操作、区域和参数语法
  7. 生成 Mermaid 数据流图 → references/dataflow-diagram.md。

  8. 生成 IAM 策略 → 使用最小权限原则,生成 references/iam-policies.md。IAM 编写规则(强制):

    • 严禁虚构伪造 — 切勿虚构、猜测或编造 IAM Action 名称、系统策略名称或语法。
    • 必须通过官方来源核实 — 至少通过以下一种官方来源进行核实:
      1. KooCLI Schema 查询:hcloud IAM GetAuthorizationSchemaV5 --cli-region=cn-north-4 --service_code=<service_code> — 从响应中复制准确的 name 和 urn_template 值;不得重新调整大小写或规范化。
      2. 核对官方文档 — 查阅华为云《权限及授权项说明》/《API参考》,确认标准的 service:resource_type:action 命名方式。
      3. 查询系统策略 — 通过 hcloud IAM ListPoliciesV5 + hcloud IAM GetPolicyVersionV5 核实真实的系统策略名称和准确的 JSON 语法(document 字段)。
    • 策略版本(Version)标准:
      • IAM 5.0 身份策略使用 "Version": "5.0"(系统策略与现代自定义策略标准;已验证格式如 {"Version":"5.0","Statement":[{"Effect":"Allow","Action":[...]}]})。
      • 仅在兼容传统 IAM v3 模板时使用 "Version": "1.1"。
      • 禁止书写未经官方验证的版本号(如 "1.0")。
  9. 记录 API 参考 — 在 phase-2-summary.json 中保留已核实的 API 路径。如果生成的 Skill 需要可复用的 API 文档,请在 references/ 下添加一个使用允许的 kebab-case 文件名的参考文件。

  10. 文件包限制 — 文件内容总大小 ≤ 40 MB,文件总数 ≤ 30,且 SKILL.md ≤ 500 行。将超出大小限制的 SKILL.md 内容拆分到 references/ 中。

  11. 文件扩展名允许列表 — 每个文件必须使用以下 46 种扩展名之一: .md、.mdx、.txt、.json、.json5、.yaml、.yml、.toml、.js、.cjs、.mjs、.ts、.tsx、.jsx、.py、.sh、.ps1、.psm1、.psd1、.r、.rb、.go、.rs、 .swift、.kt、.java、.cs、.cpp、.c、.h、.hpp、 .sql、.csv、.tsv、.ini、.cfg、.conf、.env、.properties、.dat、.xml、.html、.css、.scss、.sass、.svg。 无扩展名或扩展名不在允许列表中的文件必须删除或重命名。

  12. YAML frontmatter 格式检查 — SKILL.md frontmatter 必须是有效的 YAML 文档:根节点为映射,name/description 非空,tags ≤5,不含 version,description 使用块标量格式。 多余的 :/引号/错误缩进都会导致 frontmatter 无效(严重问题);继续操作前必须重新生成。

  13. 变更范围 — 一个拉取请求只能修改一个 Skill 目录。存在 base ref 时,使用 bash scripts/validate-skill.sh -s {skill-path} -b 验证 PR 差异。

  14. Quality-CLI 集成(每个生成的 Skill 均为必需) — 生成的 Skill 必须具备与此创建器 Skill 本身相同的质量报告能力(skill-quality-cli 遥测,可通过 SKILL_QUALITY_REPORT=0 选择退出):

    • 脚本:将此 Skill 的 scripts/ 中的 scripts/ensure_cli.sh 和 scripts/install_cli.sh 复制到生成的 Skill 的 scripts/ 中(内容必须完全相同;不得手动重写)。
    • SKILL.md 四点嵌入(幂等 — 已存在的部分跳过): a. 在 Overview 末尾添加 1 句:Dependency:遥测数据通过 skill-quality-cli 自动收集(如果尚未安装,将由 scripts/ensure_cli.sh 安装)。 b. 在 Prerequisites 中追加:- skill-quality-cli — 由 bash scripts/ensure_cli.sh 确保就绪(幂等,已存在时跳过),另加 2 行 - 升级:手动运行 skill-quality-cli upgrade(不自动升级)与 - 禁用遥测报告:设置 SKILL_QUALITY_REPORT=0 c. 在核心流程第一个 bash 代码块内前置强制指令(用生成的 Skill 自己的 name 替换 <name>):> **⚠️ 强制要求:此 Skill 中的每个 hcloud 命令都必须使用 skill-quality-cli run --skill-name <name> -- 封装** — 严禁直接调用 hcloud 命令。 d. 将 SKILL.md 所有 bash 代码块内的裸 hcloud ... 命令封装为 skill-quality-cli run --skill-name -- hcloud ...(已封装的跳过; 模板行不封装)
    • references:在生成的 references/cli-installation-guide.md 中合并 skill-quality-cli 章节(ensure_cli.sh 幂等地确保就绪 / 手动安装 install_cli.sh / 手动升级 / 设置 SKILL_QUALITY_REPORT=0 关闭)— 不得删除既有 KooCLI 安装与认证内容。
    • 执行名称:所有嵌入内容均使用生成的 Skill 自身的 frontmatter name;禁止使用此创建器的 name。
    • 重新验证:注入后重新运行 bash scripts/validate-skill.sh -s {skill-path},确认 SKILL.md ≤ 500 行、文件 ≤ 30。 🛑 严禁生成臆造的 URI / 虚构的 API 路径。第 2 阶段未验证的功能点不得编写具体命令。

输出: phase-3-summary.json — 生成的文件列表和结构验证结果

第 4 阶段:测试准备

依赖项: 第 3 阶段文档生成已完成(phase-3-summary.json 已存在)

  1. 生成测试用例 — 根据第 2/3 阶段的功能点拆分测试用例
  • CLI 用例 — 每条 hcloud 命令对应一个用例;例如,hcloud ECS ListServersDetails --cli-region=cn-north-4 --limit=1
    • SDK 用例 — 每次 SDK 调用对应一个用例;例如,list_sub_customer_coupons(limit=1) — 注意:BSS SDK 仅支持 cn-north-1 等区域,BSS 示例请使用 --cli-region=cn-north-1(或 HUAWEI_REGION=cn-north-1)
    • API 用例 — 每个用户提供的端点对应一个用例;例如,curl -X GET {endpoint}
    • 自带脚本冒烟用例 — 每个自带脚本至少有 1 条正例:有 --help/-h 的脚本使用 --help 进行冒烟测试;否则使用 bash -n <脚本绝对路径> 进行语法检查。脚本路径必须解析为绝对路径(如 bash $PWD/scripts/ensure_cli.sh --help),避免执行时相对路径失效。示例:bash $PWD/scripts/ensure_cli.sh --help / bash -n $PWD/scripts/validate-skill.sh
  1. 将测试用例保存为 JSON → templates/test-vars.json:

    {"test_cases": [{"id": "TC-01", "name": "...", "command": "...", "expected": "..."}]}
    
  2. 向用户展示所有测试用例以供确认

  3. 运行测试:

    • 从环境变量读取 AK/SK:自动扫描所有以 HUAWEI / HW / HWC 开头的环境变量,匹配其中包含 ACCESS_KEY / _AK / SECRET_KEY / _SK 的键值对
    • 如果没有有效的 AK/SK 环境变量或 CLI 配置文件:重新运行 Pre-check 模板并停止 — 绝不在聊天中索要 AK/SK;如果用户不提供环境变量,则终止。
    • 逐个执行测试用例
    • 执行变更命令(Create/Update/Delete)之前,必须提示用户并等待确认
  4. 测试验证流程:

    Each case → Try CLI execution
      ├── ✅ Success → Record PASS
      └── ❌ Failure → Check syntax issues
           ├── ✅ Syntax issue → Fix and retry
           └── ❌ Non-syntax issue → Fallback to SDK
                ├── ✅ Success → Record PASS (SDK)
                └── ❌ Failure → Fallback to API (user-provided endpoint)
                     ├── ✅ Success → Record PASS (API)
                     └── ❌ Failure → Record FAIL ⛔ requires manual verification
    

输出: phase-4-summary.json — 测试用例列表 + 每个用例的执行结果

第 5 阶段:详细测试

依赖项: 第 4 阶段测试准备已完成(phase-4-summary.json 已存在)

  1. 完整回归测试: 执行第 4 阶段生成的所有测试用例 — 必须真实执行所有 CLI 回归用例
  2. 资源生命周期测试(涉及资源创建/修改/删除的 Skills):
    • 创建资源 → 验证创建成功(通过查询确认)→ 运行时查询 → 销毁资源 → 验证释放
    • 测试报告需输出已创建/修改/删除资源的信息
    • 每个步骤执行前都要提示用户并等待确认
  3. 管理类 Skills:CRUD → 端到端完整测试;仅查询 → 将查询结果输出到测试报告
  4. 生成报告: 按用例汇总测试结果;记录详细的资源变更;为失败用例提供详细错误信息

输出: phase-5-summary.json — 详细测试结果 + 资源操作记录

第 6 阶段:资源清理与合规性检查

依赖项: 第 5 阶段详细测试已完成(phase-5-summary.json 已存在)

  1. 资源清理:

    • 检查第 5 阶段创建的所有资源是否均已释放
    • 未释放的资源 → 提示用户并尝试清理
    • 记录清理结果
  2. 华为云 Skill 规范合规性检查(依据华为云Skill检查规范):

    • 存在 SKILL.md(Critical)— 检查文件是否存在
    • Skill 目录位于 skills/ 下(Low)— 路径格式:skills/{category}/{subcategory}/{skill-name}/
    • Skill 包命名约定(High)— 目录名称与 huawei-cloud-{product}-{function} 匹配
    • 每个 PR 仅提交一个 Skill(Critical)— 使用 git diff 检查 PR 更改是否仅影响单个 Skill 目录
    • 存在 YAML Frontmatter(Critical)— 搜索 --- 分隔符
    • 存在 name 字段(Critical)— frontmatter 中存在 name 字段,且与目录名称匹配
    • 存在 description 字段(Critical)— frontmatter 中存在 description 字段,且包含功能摘要和触发词
    • description 包含触发词(Medium)— 接受 Triggers include:、Use when 或等效的触发条件
    • 不应包含 version 字段(Low)— frontmatter 中没有 version 字段
    • Overview 部分(High)— 匹配 Overview 或 概述
    • Prerequisites 部分(High)— 匹配 Prerequisites 或 前置条件
    • Workflow 部分(High)— 匹配 Workflow 或 工作流
    • Core Commands 部分(High)— 匹配 Core Commands 或 核心命令
    • Parameter Confirmation 部分(High)— 匹配 Parameter Confirmation 或 参数确认
    • Reference Documents 部分(Critical)— 匹配 Reference Documents、References 或 参考文档
    • KooCLI Command Format Standard 部分(Low)— 涉及 CLI 时必需;匹配英文或中文标题
    • references/cli-installation-guide.md(Medium)— 涉及 CLI 时建议提供,检查文件是否存在(可选)
    • Quality-CLI 集成(High)— scripts/ensure_cli.sh + scripts/install_cli.sh 存在;SKILL.md 包含 skill-quality-cli run Mandatory 要求和经过封装的 hcloud 命令
    • references/iam-policies.md(Medium)— 建议提供,检查文件是否存在(可选)
    • references/verification-method.md(Medium)— 建议检查文件是否存在
    • references/acceptance-criteria.md(Low)— 建议检查文件是否存在
    • 参考文档采用 kebab-case 命名(Low)— references/ 下的文件名均为小写 kebab-case
    • 凭据硬编码(Critical)— 搜索凭据硬编码模式和 CLI 凭据配置
    • 跨 Skill 直接调用(Critical)— 搜索其他 Skill 名称
    • CLI 写入操作需确认(Low)— 检查是否会提示用户确认
    • 服务名称要求(Medium)— 每个具体的 hcloud 服务名称均与 KooCLI 服务名称匹配,且以大写或标题格式开头,例如 ECS、CloudPond 或 IAMAccessAnalyzer
    • 操作名称采用 PascalCase(Medium)— 每个具体的操作名称均使用 PascalCase
    • 包含 --cli-region(Medium)— 每个具体的 CLI 命令均包含 region 参数
    • Skill 总大小 ≤ 40 MB(Medium)— 汇总 Skill 目录下所有文件的内容大小
    • 文件总数 ≤ 30(Medium)— 统计 SKILL.md 和所有子目录中的文件
    • SKILL.md 行数 ≤ 500(Medium)— 将超出部分拆分到 references/
    • 文件扩展名在允许列表中(Medium)— 拒绝无扩展名的文件以及不在 46 种类型允许列表中的扩展名
  3. 最终报告:

    • 合并阶段 1-6 的阶段摘要
    • 输出完整的创建报告
    • 标记所有未完成的项目
  4. 最终六阶段完整性检查:

    Check phase-1-summary.json exists → If missing, restart from Phase 1
    Check phase-2-summary.json exists → If missing, restart from Phase 2
    Check phase-3-summary.json exists → If missing, restart from Phase 3
    Check phase-4-summary.json exists → If missing, restart from Phase 4
    Check phase-5-summary.json exists → If missing, restart from Phase 5
    Check phase-6-summary.json exists → If missing, restart from Phase 6
    

    所有阶段均已完成 → 创建完成。若有阶段缺失 → 从缺失阶段重新开始。

  5. 清理阶段摘要文件: 完整性检查通过后,删除 Skill 目录下所有 phase--summary.json 文件。只有在完整性检查完全通过且已验证 后,才能执行删除(该路径必须是正在测试的 Skill 的合法目录)。不要将删除操作与其他检查串联;仅对 phase--summary.json 使用受保护的带引号单条命令。

    注意: 只有在完整性检查完全通过后才能执行清理。如果存在缺失阶段,请勿清理;从缺失阶段重新开始。 输出: phase-6-summary.json — 最终创建报告 + 合规性检查结果

KooCLI 命令格式标准

hcloud --cli-region= [--key=value ...] — 底层语法格式。

  • 服务名称 — 精确的 KooCLI 服务名称,以大写或首字母大写形式开头,例如 ECS、VPC、CloudPond、IAMAccessAnalyzer
  • 操作名称 — PascalCase,例如 ListServers、ShowServer
  • 区域参数 — --cli-region=,例如 --cli-region=cn-north-4
  • 简单参数 — --key=value,例如 --server_id=xxx
  • 索引参数 — --key.1=value1,例如 --servers.1.id=xxx

核心命令

真实命令区(可直接执行验证)

以下为真实可执行的只读命令,用于 Pre-check 与 Phase 2/4/5 真实验证({path} 等为占位符,实际执行时替换为真实路径,见参数确认):

CommandPurpose
hcloud ECS ListFlavors --cli-region=cn-north-4 --limit=1Phase 2/5:查询 ECS 规格(只读,真实可执行)
hcloud ECS ListServersDetails --cli-region=cn-north-4 --limit=1Phase 4/5:查询 ECS 列表(只读,真实可执行)
hcloud configure listPre-check:校验 CLI 凭据配置(只读,真实可执行)
python3 -c "import huaweicloudsdkcore"前置检查:SDK 可用性(真实可执行)
命令说明区(格式说明,非直接执行)

以下行仅作格式说明,命令行提取器只提取以 bash / hcloud / python3 / curl 开头的真实命令;以 # 开头的行是说明,会被跳过:

  • hcloud CLI 通用格式:hcloud --cli-region= [--key=value ...],详见 KooCLI 命令格式标准。
  • 结构/规范校验(Phase 3/6):执行 bash scripts/validate-skill.sh 并传入 -s 参数指向目标 skill 目录(如 -s skills/devtools/common/huawei-cloud-skill-creator)。
  • 功能测试(Phase 4/5):执行 bash scripts/test-cli-commands.sh,传入 -s 参数指向 skill 目录、-e 参数选择执行模式(cli/sdk/api/auto)。
  • 质量 CLI 就绪:执行 bash scripts/ensure_cli.sh(幂等;缺失时自动安装 skill-quality-cli),手动安装用 bash scripts/install_cli.sh。

test-cli-commands.sh 仅执行白名单命令(以 hcloud/python3/curl/bash 开头),其他命令会被拒绝且不会执行。validate-skill.sh 对不存在的 skill 目录会明确报错(exit 1)。

参数确认

ParameterRequiredDescriptionExample
skill-path是目标 Skill 目录路径例如,huawei-cloud-ecs-manage
region否华为云区域(BSS 仅支持 cn-north-1 等区域)cn-north-4(BSS:cn-north-1)
executor否执行模式(cli/sdk/api)cli

边缘情况

场景处理方式
用户跳过问题,直接说“开始”提醒:必须先完成需求分析,从阶段 1 的问题开始
未设置 AK/SK 环境变量重新执行上方的 预检查。输出环境变量设置模板(export HUAWEI_ACCESS_KEY=... / export HUAWEI_SECRET_KEY=...),让用户在聊天之外填写。绝不要求用户在聊天中粘贴 AK/SK。如果用户不进行配置,则终止流程,严格禁止跳过
hcloud CLI 不支持目标服务阶段 2 回退到 SDK → 阅读 SDK 源码中的 _http_info → 如果仍未找到,则标记 ⛔
SDK 包不存在检查包名变体,如果仍未找到,则告知用户,不要推断 API
用户不确定 API 端点标记 ⛔,需要手动验证,不要捏造端点。如果 SDK 中有该方法,则读取 _http_info 获取真实路径
SDK 有方法,但 _http_info 中没有 resource_path标记 ⛔,此 API 在 SDK 中不存在,不要推断
尝试通过路径模式推断 API(例如从 coupons 推断 claim-vouchers)❌ 严格禁止。该 API 不存在
资源创建测试失败分析错误原因(权限/配额/参数)→ 修复并重试
资源释放失败重试 3 次,如果仍然失败,则告知用户手动清理
运行测试时缺少 templates/test-vars.jsontest-cli-commands.sh 会报告 FATAL 并以 1 退出(不执行测试)。测试前重新执行阶段 4,生成 templates/test-vars.json
用户拒绝资源生命周期测试告知用户:资源生命周期测试是必需步骤,不能跳过;如果用户仍然拒绝,则终止流程
阶段 6 发现缺少阶段从缺少的阶段重新开始,直到全部 6 个阶段完成
SDK 有方法,但实际 API 路径未知阅读 SDK 源码,通过 grep _http_info {service}_client.py 获取真实路径
BSS 服务 SDK 初始化失败(GlobalCredentials)BSS 是全局服务,必须使用 GlobalCredentials 和 with_endpoints,而不能使用 BasicCredentials 和 with_region;BSS 仅支持 cn-north-1 等区域(--cli-region=cn-north-1 / HUAWEI_REGION=cn-north-1)
list_sub_customer_coupons 查询返回 400BSS 的 limit 参数最大值为 100,而非默认的 200;BSS SDK 示例使用区域 cn-north-1

验证方法

规范合规性验证
bash scripts/validate-skill.sh -s {skill-path}   # Check against 华为云Skill检查规范
功能测试
bash scripts/test-cli-commands.sh -s {skill-path} -e {cli|sdk|api}   # CLI priority → SDK fallback → API fallback

参考文档

  • references/iam-policies.md — 最小权限 IAM 策略
  • references/verification-method.md — 验证方法详情
  • references/dataflow-diagram.md — Mermaid 数据流图
  • references/acceptance-criteria.md — 验收标准
  • references/related-commands.md — 命令快速参考

备注与设计原则

  • 严格的六阶段流水线 — 各阶段相互依赖、按顺序执行,不可跳过
  • 阶段 2/3 以事实为依据 — 端点仅取自 SDK _http_info/API Explorer(不推断);命令依据阶段 2 的结论;没有端点 → 标记 ⛔
  • 阶段 4-6 验证 — 每条命令都必须实际执行(变更操作需要确认);阶段 6:清理 + 合规性 + 完整性;修复失败项并重新验证
  • 凭据安全 — 不得硬编码 AK/SK;从环境变量(HUAWEI_/HW_/HWC_* AK/SK 标记)或当前活动的 CLI 配置文件读取;不得使用带有明文密钥的 hcloud configure set
  • 凭据必需 — 如果预检查后仍缺少 AK/SK,输出环境变量设置模板,供用户在聊天之外填写;绝不要求用户在聊天中粘贴 AK/SK;如果仍未配置,则终止
  • BSS SDK 必须使用 GlobalCredentials + with_endpoints,不得使用 BasicCredentials 和 with_region。
  • BSS 区域:BSS 服务仅支持 cn-north-1 等区域;涉及 BSS 的示例命令应标注 --cli-region=cn-north-1(SDK 初始化也用 cn-north-1),test-defaults.json 中 region: cn-north-1 即为此口径。
  • 清理 — 生命周期测试期间创建的资源必须在阶段 6 释放
  • 最小权限 — iam-policies.md 提供最小权限策略 JSON;skills-lock.json 中的 skillPath 为 skills/devtools/common/huawei-cloud-skill-creator/SKILL.md
  • IAM 编写(仅限官方依据) — IAM 操作名称必须通过 GetAuthorizationSchemaV5 / docs / ListPoliciesV5 验证;绝不推断;IAM 5.0 使用 Version 5.0,1.1 仅用于旧版 v3

评论

支持 Markdown