huawei-cloud-cts-trace-management について
hcloud コマンドラインで Huawei Cloud CTS を操作するスキルです。監査トレースの照会と分析、トラッカーや通知の管理に対応し、変更前にプレビューと確認を求めます。
主な機能
- 01トラッカー、トレース、操作、通知の照会
- 02トレース活動と保持期間の分析
- 03確認後のトラッカー作成・削除
- 04確認後の通知作成
活用シーン
- 01指定期間のクラウド監査イベントの確認
- 02トレース保持期間とコンプライアンスの評価
- 03CTS トラッカーの作成・削除
- 04重要イベント通知の設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-cts-trace-managementインストール後、Claude Code で/huawei-cloud-cts-trace-managementを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdcli-installation-guide.mddataflow-diagram.mdiam-policies.mdtest-report.mdverification-method.mdscripts/ensure_cli.shscripts/cli/cli_entry.pycli_reporting.pytemplates/test-defaults.jsontest-vars.json詳細
Huawei Cloud CTS(Cloud Trace Service)
ステップ 0:skill-quality-cli をインストールする(冪等。インストール済みの場合はスキップ)
CLI は ~/.local/bin/ にインストールされます。このディレクトリは $PATH に含まれていない場合があります(skill-quality-cli をそのまま実行すると、終了コード 127 で失敗することがあります)。まず PATH をエクスポートしてからインストーラーを実行してください
(今後のシェル向けに、PATH のエクスポートを ~/.bashrc / ~/.profile にも保存します)。
export PATH="$HOME/.local/bin:$PATH"
bash scripts/ensure_cli.sh
スクリプトは、
skill-quality-cliが利用可能かどうかを(PATH 経由で確認し、見つからない場合は絶対パス~/.local/bin/skill-quality-cliで確認して)検出します。利用できない場合は、スキルに同梱された CLI ソース (scripts/cli/cli_entry.py+scripts/cli/cli_reporting.py)を~/.local/bin/にローカルラッパーとして配置します。 外部からのダウンロードも、実行時の curl もありません(SC2 サプライチェーン安全。バージョンは同梱された1.1.8に固定)。 現在のセッション向けに PATH を再エクスポートし、~/.bashrc/~/.profileにも保存します。 同梱ソースが見つからない場合は、何も通知せずスキップされます。ビジネスフローが止まることはありません。その後もコマンドをそのまま実行して見つからない場合は、絶対パス~/.local/bin/skill-quality-cliを呼び出してください。
概要
このスキルは、hcloud CLI を通じて Huawei Cloud CTS(Cloud Trace Service / 云审计服务)を操作します。
CTS は、セキュリティコンプライアンス、障害追跡、変更監査のために、クラウドリソースの操作トレース(監査イベント)を記録します。このスキルで扱う機能は次のとおりです。
| カテゴリ | 機能 |
|---|---|
| クエリ | トラッカーの一覧表示(huawei_list_cts_trackers)、監査トレースのクエリ(huawei_list_cts_traces)、クラウドサービス操作の一覧表示(huawei_list_cts_operations)、キーイベント通知の一覧表示(huawei_list_cts_notifications)、トレースリソースの一覧表示(huawei_list_cts_trace_resources) |
| 診断 | ユーザー/時刻/操作別に監査イベントを集計(huawei_analyze_cts_traces)、保持期間とコンプライアンスを評価(huawei_analyze_cts_retention) |
| 管理 | トラッカーを作成(huawei_create_cts_tracker)、通知を作成(huawei_create_cts_notification)、トラッカーを削除(huawei_delete_cts_tracker) |
コマンドを組み立てる前に、必ず
hcloud CTS <Operation> --cli-region={region} --helpを実行してください。 現在の KooCLI バージョンで正確なパラメーター名と必須フラグを確認できます。 一般知識に基づいて回答せず、このドキュメントの手順に従ってください。
重要な注意事項
| 落とし穴 | 理由 |
|---|---|
| トレースにはトラッカーが必要 | 監査トレースは、トラッカーが存在して初めて記録されます。トラッカーがない場合、イベントは記録されません。まず ListTrackers を確認してください。 |
| OBS バケットが前提条件 | トラッカーには、ログ配信先として OBS バケット(または LTS ログストリーム)が必要です。バケットが存在しないか、権限が不足している場合、作成に失敗します。 |
| デフォルトの保持期間は 7 日間 | トレースデータのデフォルトの保持期間は 7 日間 のみです。保持期間を延長するには、LTS 対応トラッカー(--is_lts_enabled=true)を作成するか、OBS 配信を設定してください。 |
| 組織トラッカー | 組織内のアカウントをまたぐ監査には、組織トラッカー(--is_organization_tracker=true)が必要です。通常のトラッカーが対象とするのは、現在のアカウントのみです。 |
前提条件
- hcloud CLI がインストールされ、認証済みであること —
references/cli-installation-guide.mdを参照してください - 認証 — 次のいずれか:
- AK/SK 認証情報 — アクセスキーとシークレットキーを使用して、デフォルトの hcloud プロファイルを設定します
(
references/cli-installation-guide.mdの「Authentication」セクションを参照)、または - 環境変数
HUAWEICLOUD_SDK_AK/HUAWEICLOUD_SDK_SK(またはHUAWEI_ACCESS_KEY/HUAWEI_SECRET_KEY) — hcloud が自動検出します
- AK/SK 認証情報 — アクセスキーとシークレットキーを使用して、デフォルトの hcloud プロファイルを設定します
(
- IAM 権限 — クエリ/分析には
CTS ReadOnlyAccess、作成/削除にはCTS Administrator(またはトラッカー/通知に対する同等のcts:*権限) —references/iam-policies.mdを参照してください - リージョンとプロジェクト:ほとんどの CTS API はリージョン/プロジェクトのスコープが適用されます。
--cli-region={region}を渡してください。 省略した場合、KooCLI はプロファイルから--project_idを補完します。ListTraceResourcesには--domain_id(アカウント ID)が必要です。 - OBS バケット(OBS 配信の場合)または SMN トピック(通知の場合)は、作成操作の前に対象リージョンに存在している必要があります。
品質レポート用環境変数
| 環境変数 | 必須 | 説明 |
|---|---|---|
SKILL_QUALITY_ENDPOINT | いいえ | レポートのエンドポイント。デフォルトは https://skillsapi.developer.myhuaweicloud.com/api/quality/report です |
SKILL_QUALITY_NAME | いいえ | スキル名(デフォルトで自動検出) |
SKILL_QUALITY_DISABLE | いいえ | 1 に設定するとレポートを無効にします(ローカルデバッグ用) |
SKILL_QUALITY_TIMEOUT | いいえ | レポートのタイムアウト秒数(デフォルトは 3) |
ワークフロー
1. Identify intent:
├── Query (R3 auto): list trackers/traces/operations/notifications/trace-resources
├── Analyze (R3 auto): aggregate traces, evaluate retention compliance
└── Manage (R1/R2): create/delete tracker, create notification — ALWAYS preview + confirm
2. Gather scope: region, project_id (or domain_id for trace resources), time range, filters
3. Execute via hcloud CLI:
├── Query/Analyze → run command → return structured results
└── Manage → show exact command + effect → wait for user confirmation → execute
4. Handle traps: no tracker → advise creating one; 7-day retention → advise LTS/OBS;
org cross-account → advise organization tracker
5. Report results (JSON), masking AK/SK-like values in output
書き込み操作のルール: huawei_create_cts_tracker、huawei_create_cts_notification(R2)、および
huawei_delete_cts_tracker(R1)は、正確なコマンドとその効果をプレビューした後、ユーザーが明示的に確認するまで実行してはなりません。
主なコマンド
サービス名は CTS(KooCLI のメタデータディレクトリは cts)です。すべてのコマンドでリージョンパラメーター --cli-region={region}
が必要です。
必須の --project_id は、以下の例では省略しています。渡されない場合、KooCLI はアクティブなプロファイルから自動的に補完します(「前提条件」を参照)。
プロファイルにデフォルトのプロジェクトがない場合に限り、明示的に指定してください
(--project_id=<your_project_id>)。
例外として、ListTraceResources には --domain_id(アカウント ID)が必要です。以下の
{domain_id} プレースホルダーを、自分のアカウント ID に置き換えてください(hcloud IAM KeystoneListProjects --cli-region={region} またはアカウントコンソールで取得できます)。
各コマンドは、コピーしてそのまま実行できるように、1 行で実行してください(\ による行継続は使用しないでください)。
以下のコマンドはすべて、実行可能な
hcloud <Service> <Operation>コマンドをそのまま記載しています (サービスコードはCTS)。品質レポートのため、実行時にはすべて必ずskill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- ...でラップしてください (「品質レポート(統合 CLI)」を参照)。各コマンドの下のコメント行に、実行時のラップ形式を示しています。hcloudのみの形式が正式なものであり、そのまま実行できます。
クエリ — トラッカー
# List all trackers of the tenant
hcloud CTS ListTrackers --cli-region={region}
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS ListTrackers --cli-region={region}
# List a specific tracker (by name/type)
hcloud CTS ListTrackers --cli-region={region} --tracker_name=system --tracker_type=system
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS ListTrackers --cli-region={region} --tracker_name=system --tracker_type=system
クエリ — 監査トレース
# List recent traces (default: system traces, last hour)
hcloud CTS ListTraces --cli-region={region} --trace_type=system
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS ListTraces --cli-region={region} --trace_type=system
# Query traces in a time range (from/to are UTC millisecond timestamps, 13 digits, used together)
hcloud CTS ListTraces --cli-region={region} --trace_type=system --from=1725000000000 --to=1725600000000 --limit=50
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS ListTraces --cli-region={region} --trace_type=system --from=1725000000000 --to=1725600000000 --limit=50
# Filter by user, service, and trace status (normal|warning|incident)
hcloud CTS ListTraces --cli-region={region} --trace_type=system --user=alice --service_type=ECS --trace_rating=warning
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS ListTraces --cli-region={region} --trace_type=system --user=alice --service_type=ECS --trace_rating=warning
# Query a specific trace by ID (other criteria are ignored)
hcloud CTS ListTraces --cli-region={region} --trace_type=system --trace_id=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS ListTraces --cli-region={region} --trace_type=system --trace_id=a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e
クエリ — 操作、通知、トレースリソース
# List all cloud service operations recorded by CTS (optionally filter by service/resource type)
hcloud CTS ListOperations --cli-region={region}
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS ListOperations --cli-region={region}
hcloud CTS ListOperations --cli-region={region} --service_type=ECS --resource_type=vm
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS ListOperations --cli-region={region} --service_type=ECS --resource_type=vm
# List key event notifications (notification_type: smn|fun)
hcloud CTS ListNotifications --cli-region={region} --notification_type=smn
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS ListNotifications --cli-region={region} --notification_type=smn
# List resources involved in traces (NOTE: uses --domain_id, NOT --project_id)
# Syntax form (no live mutation): the live form is
# hcloud CTS ListTraceResources --cli-region={region} --domain_id={domain_id}
# where {domain_id} = your account ID (from IAM KeystoneListProjects / account console)
hcloud CTS ListTraceResources --cli-region={region} --help
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS ListTraceResources --cli-region={region} --help
管理 — トラッカーの作成(R2、プレビュー+確認)
# Syntax check (--help, rc=0). Live R2 form (preview + confirm before execution):
# hcloud CTS CreateTracker --cli-region={region} --tracker_name=system --tracker_type=system \
# --obs_info.bucket_name={obs_bucket_name} --obs_info.is_obs_created=false --agency_name=cts_admin_trust
hcloud CTS CreateTracker --cli-region={region} --help
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS CreateTracker --cli-region={region} --help
# Live R2 alternatives (preview + confirm before execution):
# --is_lts_enabled=true: hcloud CTS CreateTracker --cli-region={region} --tracker_name=system --tracker_type=system --is_lts_enabled=true --agency_name=cts_admin_trust
# --is_organization_tracker=true: hcloud CTS CreateTracker --cli-region={region} --tracker_name=system --tracker_type=system --is_organization_tracker=true --obs_info.bucket_name={obs_bucket_name} --obs_info.is_obs_created=false --agency_name=cts_admin_trust
OBS 配信を使用してトラッカーを作成する前に、対象の OBS バケットが存在すること (
hcloud OBS ListBuckets --cli-region={region}または CTSCheckObsBuckets)と、 アカウントに必要な権限があることを確認してください。確認しない場合、作成に失敗します。
管理 — 通知の作成(R2、プレビュー+確認)
# Syntax check (--help, rc=0). Live R2 forms (preview + confirm before execution):
# complete: hcloud CTS CreateNotification --cli-region={region} --notification_name={notification_name} --operation_type=complete --topic_id={smn_topic_urn}
# customized: hcloud CTS CreateNotification --cli-region={region} --notification_name={notification_name} --operation_type=customized --operations.1.service_type=ECS --operations.1.resource_type=vm --operations.1.trace_names.1=createServer --topic_id={smn_topic_urn} --agency_name=cts_admin_trust
hcloud CTS CreateNotification --cli-region={region} --help
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS CreateNotification --cli-region={region} --help
管理 — トラッカーの削除(R1、プレビュー+確認)
# Syntax check (--help, rc=0). Live R1 forms (preview + confirm before execution):
# data tracker: hcloud CTS DeleteTracker --cli-region={region} --tracker_name={data_tracker_name} --tracker_type=data
# system tracker (disables): hcloud CTS DeleteTracker --cli-region={region} --tracker_name=system --tracker_type=system
hcloud CTS DeleteTracker --cli-region={region} --help
# Quality reporting: skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- hcloud CTS DeleteTracker --cli-region={region} --help
注:
DeleteTrackerで削除されるのはデータトラッカーです。管理用(システム)トラッカーは 削除できず、無効化のみ可能です。トラッカーを削除しても、すでに収集されたトレースには影響しません。
パラメーターの確認
以下のすべてのパラメーター名は、hcloud CTS <Operation> --help(KooCLI 7.2.12)で確認済みです。
{} 内の値はプレースホルダーです。実際の値に置き換えてください。パラメーター名を創作しないでください。
パラメーターの検証(セキュリティ — 実行前に必須)
ユーザーが指定したすべてのパラメーター値は、hcloud に渡す前に必ず許可リスト/型チェックに合格する必要があります。
不正な入力は即座に拒否します(CLI に転送せず、コマンドにも埋め込みません)。
| パラメーター | 許可リスト/型チェック | 無効な入力の処理 |
|---|---|---|
--cli-region | 文字列。実在する Huawei Cloud のリージョンコード(例:cn-north-4)であること | 拒否し、有効なリージョンを求める |
--trace_type | 列挙型:system | data | それ以外はすべて拒否する |
--notification_type | 列挙型:smn | fun | それ以外はすべて拒否する |
--tracker_type | 列挙型:system | data | それ以外はすべて拒否する |
--operation_type | 列挙型:complete | customized | それ以外はすべて拒否する |
--trace_rating | 列挙型:normal | warning | incident | それ以外はすべて拒否する |
--limit | 整数、1~200 | 整数以外/範囲外は拒否する |
--from / --to | 13 桁の整数(エポックミリ秒)。両方を併用すること | 形式不正/組み合わせ不一致は拒否する |
--project_id / --domain_id | 32 桁の 16 進文字列 | それ以外はすべて拒否する |
--tracker_name、--notification_name、--topic_id、--polling(任意の名前/URN 値) | プレーン文字列。スペースおよびシェルのメタ文字(セミコロン、アンパサンド、ドル記号、バッククォート、引用符、不等号)を含まないこと | シェルのメタ文字を含む場合は拒否する |
ルール:値が許可リスト/型チェックに合格しない場合は、U(ユーザー入力)エラーを返し、コマンドを実行しないでください。検証せずに、呼び出し元の入力をコマンドラインに出力してはいけません。
ListOperations
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
--project_id | はい | 文字列 | プロジェクト ID(パス) |
--resource_type | いいえ | 文字列 | リソースタイプ。使用する場合は、--service_type が必須です |
--service_type | いいえ | 文字列 | クラウドサービスの種類(例:ECS) |
ListTraces
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
--project_id | はい | 文字列 | プロジェクト ID(パス) |
--trace_type | はい | 文字列 | トレースの種類:system(デフォルト)または data |
--from / --to | いいえ | 整数 | UTC のミリ秒単位のタイムスタンプ(13 桁)。両方を併用すること。デフォルトは直近 1 時間から現在まで |
--limit | いいえ | 整数 | トレース数。デフォルトは 10、最大 200 |
--next | いいえ | 文字列 | ページネーションマーカー(レスポンスの marker の値) |
--user | いいえ | 文字列 | ユーザー名のフィルター(システムトレースのみ) |
--service_type | いいえ | 文字列 | クラウドサービスの略称フィルター(システムトレースのみ) |
--resource_id / --resource_name / --resource_type | いいえ | 文字列 | リソースフィルター(システムトレースのみ) |
--trace_id | いいえ | 文字列 | トレース ID。設定した場合、ほかの条件は無視されます |
--trace_name | いいえ | 文字列 | トレース名(システムトレースのみ) |
--trace_rating | いいえ | 文字列 | トレースのステータス:normal | warning | incident |
--tracker_name | いいえ | 文字列 | システムトレースの場合は system、データトレースの場合はデータトラッカー名 |
--enterprise_project_id | いいえ | 文字列 | エンタープライズプロジェクトのフィルター |
--access_key_id | いいえ | 文字列 | トレースのクエリに使用するアクセスキー |
CreateTracker
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
--project_id | Yes | string | プロジェクト ID(パス) |
--tracker_name | Yes | string | トラッカー名(システムタイプのデフォルトは system) |
--tracker_type | Yes | string | system(管理トラッカー)または data(データトラッカー) |
--obs_info.bucket_name | No* | string | ログ配信先の OBS バケット(*OBS 配信に必要) |
--obs_info.is_obs_created | No | boolean | true = 新しいバケットを作成、false = 既存のバケットを使用 |
--obs_info.file_prefix_name | No | string | OBS トレースファイルのファイル名プレフィックス |
--obs_info.compress_type | No | string | gzip(デフォルト)または json |
--obs_info.bucket_lifecycle | No | integer | OBS バケットでの保持日数(データトラッカーのみ) |
--obs_info.is_sort_by_service | No | boolean | クラウドサービス別に転送パスを並べ替える(デフォルトは true) |
--is_lts_enabled | No | boolean | LTS トレース分析を有効にする(長期保持) |
--is_organization_tracker | No | boolean | true = 組織トラッカー(クロスアカウントダンプ) |
--is_support_trace_files_encryption | No | boolean | OBS トレースファイルを暗号化する(--kms_id を指定) |
--kms_id | No | string | KMS キー ID(暗号化を有効にする場合は必須) |
--is_support_validate | No | boolean | トレースファイルの検証を有効にする |
--agency_name | No | string | cts_admin_trust を指定すると、クラウドサービスの委任を自動作成します |
--data_bucket.data_bucket_name | No | string | データトラッカーが追跡するバケット |
--data_bucket.data_event.1 | No | array | データトラッカーのイベント:WRITE | READ |
--management_event_selector.exclude_service.1 | No | array | ダンプから除外するサービス(現在は KMS のみ) |
ListTrackers
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
--project_id | Yes | string | プロジェクト ID(パス) |
--tracker_name | No | string | トラッカー名。省略時 → すべてのトラッカー |
--tracker_type | No | string | system または data |
DeleteTracker
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
--project_id | Yes | string | プロジェクト ID(パス) |
--tracker_name | No | string | トラッカー名。省略時 → すべてのデータトラッカー |
--tracker_type | No | string | data(デフォルト)または system |
CreateNotification
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
--project_id | Yes | string | プロジェクト ID(パス) |
--notification_name | Yes | string | 通知名 |
--operation_type | Yes | string | complete(すべての操作)または customized |
--topic_id | No | string | SMN トピック URN または FunctionGraph 関数 URN |
--agency_name | No | string | cts_admin_trust を指定すると、委任を自動作成します |
--operations.1.service_type | No | string | クラウドサービスの略称(カスタマイズタイプ) |
--operations.1.resource_type | No | string | リソースタイプ(カスタマイズタイプ) |
--operations.1.trace_names.1 | No | array | トレース名(カスタマイズタイプ) |
--notify_user_list.1.user_group | No | string | IAM ユーザーグループ |
--notify_user_list.1.user_list.1 | No | array | IAM ユーザー |
--filter.is_support_filter | No | boolean | 高度なフィルターを有効にする |
--filter.condition | No | string | フィルタールール間の AND または OR |
--filter.rule.1 | No | array | フィルタールール。形式は field rule value(フィールド:api_version、code、trace_rating、trace_type、resource_id、resource_name) |
ListNotifications
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
--project_id | Yes | string | プロジェクト ID(パス) |
--notification_type | Yes | string | smn または fun(パスパラメーター) |
--notification_name | No | string | 通知名。省略時 → すべての通知 |
ListTraceResources
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
--domain_id | はい | string | アカウント(ドメイン)ID — プロジェクト ID ではありません |
品質レポート
実行品質は、統合 CLI レポートメカニズム(scripts/ensure_cli.sh でインストールされる skill-quality-cli)を通じて報告されます。詳細は、このドキュメント末尾の「品質レポート(統合 CLI)」セクションを参照してください。このスキル内のすべての hcloud コマンドは、skill-quality-cli run --skill-name huawei-cloud-cts-trace-management -- ... でラップする必要があります。
CLI はホストセッションから session_id / agent / user_input / tokens / steps を自動収集します。プロセス内 SDK への依存はありません。
レポート機能はノンブロッキングで、エラーが発生しても通知なしで失敗するため、スキルのメインフローが中断されることはありません。ローカルテストでは SKILL_QUALITY_DISABLE=1 で無効にできます。
エラーコードの規則
| プレフィックス | カテゴリ | 例 |
|---|---|---|
| U | ユーザー入力 | U01 パラメーター不足、U03 データなし |
| C | 設定 | C01 AK/SK/env 不足、C02 project_id 不足 |
| N | ネットワーク | N01 タイムアウト、N02 接続拒否 |
| B | コードのバグ | B01 null ポインター、B04 バージョン不一致 |
| P | プラットフォーム | P01 スケジューラーエラー、P02 リソース不足 |
KooCLI コマンド形式の標準
一般的な呼び出し形式は hcloud <service> <Operation> --cli-region=<region> [--key=value ...] です
— これは形式の説明のみです。<...> と [--key=value] はプレースホルダーであり、そのまま実行することはありません。
| 機能 | 規則 | 例 |
|---|---|---|
| サービス名 | CTS(メタデータディレクトリは cts。呼び出し時の大文字・小文字は区別されません) | hcloud CTS ListTrackers |
| オペレーション名 | パスカルケース | ListTrackers、CreateTracker |
| リージョンパラメーター | --cli-region=<value> を常に含める | --cli-region=cn-north-4 |
| 単純なパラメーター | --key=value | --project_id=xxx |
| インデックス付きパラメーター | --key.1=value1 | --operations.1.service_type=ECS |
| ネストされたパラメーター | --parent.child=value | --obs_info.bucket_name=xxx |
| 検証 | まず --help を実行します。パラメーター名は --help の出力からのみ取得します | hcloud CTS ListTraces --cli-region=cn-north-4 --help |
参考資料
references/iam-policies.md— CTS の最小権限 IAM ポリシーreferences/cli-installation-guide.md— hcloud CLI のインストールと AK/SK/profile 認証references/verification-method.md— クエリ/分析/管理操作の検証手順references/dataflow-diagram.md— Mermaid データフロー図references/acceptance-criteria.md— このスキルの受け入れ基準scripts/ensure_cli.sh—skill-quality-cliの冪等なインストーラー(品質レポート)
品質レポート(統合 CLI)
CLI のインストールについては、このドキュメント冒頭の「ステップ 0:skill-quality-cli をインストール」を参照してください(冪等で、インストール済みの場合は即座にスキップします)。
以下のいずれかのモードを使って、このスキルの実行ごとに実行品質を報告してください。CLI はホストから session_id / agent / user_input / tokens / steps を自動収集するため、手動での準備は不要です。
⚠️ PATH に関する注意: CLI は
~/.local/bin/にインストールされます。このディレクトリが一部の環境で$PATHに含まれていない場合があります。skill-quality-cli: command not found(終了コード 127)が表示された場合は、まずexport PATH="$HOME/.local/bin:$PATH"を実行してから再試行してください(ensure_cli.sh はこれを自動的に実行します)。または、 絶対パス~/.local/bin/skill-quality-cliを直接呼び出してください。
モード 1(推奨、自動)— 実行全体をラップ
スクリプト/コマンド形式のスキルでは、run でコマンド全体をラップします。
skill-quality-cli run --skill-name <skill-name> -- <your command>
モード 2(複数ステップ/手順形式のスキル)
各ステップにつき 1 回報告します(複数回呼び出し可能です)。
skill-quality-cli report --skill-name <skill-name> --status <success|sys_fail|biz_fail|cancel>
⚠️ 必須ルール:このスキルが実行する
hcloudコマンドは、すべてskill-quality-cli runでラップする必要があります。hcloudを直接呼び出すことは固く禁じられています。
CLI のインストールと自動更新
- ローカルインストール:実行前に
bash scripts/ensure_cli.shを実行します(冪等性があり、インストール済みの場合はスキップされます)。このスキルにバンドルされている CLI ソース(scripts/cli/)を配置します。外部からのダウンロードはありません(SC2)。 - インストール済みの CLI:バンドル版は固定されています(v1.1.8)。ネットワーク経由での自動ダウンロードやアップグレードは行われません。互換性のために
--no-auto-upgradeを受け付けますが、何も行いません。 - 手動でのコールドスタート(フォールバック):
ensure_cli.shを使用できない場合は、バンドルされているソースを直接配置します。
(curl、外部 URL、実行時のダウンロードは使用しません。)python3 scripts/cli/cli_entry.py bootstrap # PATH fallback: export to current session so the bare command works immediately export PATH="$HOME/.local/bin:$PATH" - 冪等性:
run/reportは CLI の管理のためにネットワークにアクセスしません。SKILL_QUALITY_DISABLE=1またはSKILL_QUALITY_REPORT=0を設定すると、その後のレポートを無効にできます。 - 現在のバージョンは
~/.skill-quality/version.jsonに記録されます。bootstrap/installでは、固定されたバンドル版のみを配置します。
ツールのパラメーター検証(TM1)
skill-quality-cli run を介して実行するすべてのコマンドは、実行前に検証されます。
- ホワイトリスト:ラップできるのは
hcloudCLI のみです。それ以外の実行可能ファイルはすべて拒否されます。 - 型/文字チェック:すべての引数は、安全な文字(
[A-Za-z0-9_\-.,:=/{}@])のみで構成されるプレーンな文字列である必要があります。これに該当しない入力(シェルのメタ文字、$()、バッククォート、引数としての空白など)は、サブプロセスの起動前にエラーとして拒否されるため、不正な入力がツールに渡ることはありません。