Install
openclaw skills install @huaweicloudskill/huawei-cloud-billing-scoutHuawei Cloud BSS billing (not AWS/Azure/other clouds; refuses pricing quotes, real-name review, and any non-billing scope): balance, spend, attribution, reconciliation, coupons, stored-value cards, enterprise/partner billing. One-page briefing via hcloud. Use when the request is about Huawei Cloud billing. Triggers include: 华为云余额, 华为云欠费, 华为云本月花费, 华为云扣费原因, 华为云账单对账, 华为云资源包, 华为云优惠券, 华为云企业主账号, 华为云伙伴账务, 华为云服务编码, Huawei Cloud balance / bill / spend / reconciliation / coupon / stored-value card / BSS billing. Refuses pay, renew, refund, delete; non-Huawei-Cloud billing is out of scope.
openclaw skills install @huaweicloudskill/huawei-cloud-billing-scoutHuawei Cloud Read-Only Billing — Spend, Charges & Reconciliation
Using hcloud ≥7.2.2 and BSS read-only IAM, answer in one conversation: how much spent, why charged, where the difference is, what evidence is still missing. Query only, no modifications, no account operations on behalf of users.
A thin, read-only billing scout: it does not compute or store billing facts itself — it routes a billing question to the right BSS entities in billing-ontology.yml, gathers the minimum evidence with copyable BSS CLI commands, and answers in one-page briefing style. Query only: no payment, refund, unsubscribe, delete, or any account operation on behalf of the user.
Applicable scenarios
Not applicable — pricing trials, renewal quotes, discount strategy, real-name review results, and any non-Huawei-Cloud billing; see ## Boundaries.
SKILL.md defines behavior; semantic/catalog.yml defines entry points and required context; semantic/billing-ontology.yml defines facts, grains, money_basis, and source_operations; references/related-commands.md defines copyable BSS templates and pagination limits.
Four types of billing questions and routing: see references/semantic/catalog.yml.
Prerequisite check: Huawei Cloud CLI (hcloud) >= 7.2.2 required Run
hcloud versionto verify version >= 7.2.2, andhcloud configure listto check profile exists. Runhcloud configure set --cli-lang=cn— BSS requires Chinese mode. If not installed or version is too low, see references/cli-installation-guide.md for installation guide.
hcloud version
hcloud configure list
hcloud configure set --cli-lang=cn
North Star — Any assertion must be reducible to the quadruple "fact × grain × money_basis × scope/billing_period"; irreducible assertions only list gaps, no conclusions.
evidence_boundary; speculation, pending checks, and responsibility judgments must first verify whether evidence falls within the boundary.Huawei Cloud Gate — Before matching in catalog.yml: if user has not indicated Huawei Cloud / BSS / this skill's billing scope, and cannot be determined from conversation as the Huawei Cloud account for current hcloud profile, first ask one confirmation "Query current configured Huawei Cloud account and billing period?"; without confirmation, no BSS query execution. Non-Huawei Cloud or other cloud vendor billing → only state out of scope, no evidence gathering.
| Phase | Task | Reference File | Forbidden |
|---|---|---|---|
| Lock Money Basis | Lock three-set | catalog.yml → required_context | Ask one at a time if missing, not all together |
| Select Entry Point | Match triggers to get entry_point, obtain ontology_entities | catalog.yml → entry_points | No cross-entry-point summing or borrowing |
| Gather Evidence | Minimal read-only queries within evidence_boundary; first query copy from related-commands.md current entry #### template | billing-ontology.yml + related-commands.md | No --help to discover operations; no self-constructed JSON; no full detail list first |
| Deliver | Conclusion first then facts; conclusion must be reducible to quadruple | This document "Response Requirements" | No sending command process; no transferring investigation burden |
Two defaults and one fixed config only valid during evidence gathering phase:
related-commands.md reconciliation order; ask one ID at a time only when blocking ID is missing.customer_id or other prerequisite IDs, first provide read-only acquisition path or one clarification, then make responsibility judgment.--cli-region=cn-north-1; no substitution with profile or other regions. [Fixed config, non-adjustable]Entry-point examples only. The copyable
####template inreferences/related-commands.mdis authoritative: the first query must copy that template, and if the operation has no template, stop — do not use--helpto discover operations.
| Function | Real read-only command | Notes |
|---|---|---|
| Balance / debt | hcloud BSS ShowCustomerAccountBalances --cli-region=cn-north-1 --cli-output=json | Current profile, first query for balance questions |
| Monthly summary | hcloud BSS ShowCustomerMonthlySum --bill_cycle=2025-04 --cli-region=cn-north-1 --cli-output=json | Whole-account billing-period overview |
| Spend by dimension | hcloud BSS ListCosts --amount_type=PAYMENT_AMOUNT --cost_type=ORIGINAL_COST --time_condition.begin_time=2025-04-01 --time_condition.end_time=2025-04-30 --time_condition.time_measure_id=1 --groupby.1.key=CLOUD_SERVICE_TYPE --groupby.1.type=dimension --cli-region=cn-north-1 --cli-output=json --limit=10 --offset=0 | Service or enterprise-project ranking; an empty filter result must not be widened to a full-account query |
| Reconciliation (transaction side) | hcloud BSS ListCustomerBillsFeeRecords --bill_cycle=2025-04 --cli-region=cn-north-1 --cli-output=json --limit=10 --offset=0 | Billing-period transaction records |
| Resource detail (export side) | hcloud BSS ListCustomerselfResourceRecordDetails --cycle=2025-04 --cli-region=cn-north-1 --cli-output=json --limit=10 --offset=0 | May differ in precision from the summary; that difference is the reconciliation object |
| Resource package | hcloud BSS ListFreeResourceInfos --service_type_code_list.1=hws.service.type.obs --cli-region=cn-north-1 --cli-output=json | Package list; remaining quota uses ListFreeResourceUsages |
| Service code dictionary | hcloud BSS ListServiceTypes --cli-region=cn-north-1 --cli-output=json | Translate and validate codes appearing in bills and costs |
Commands for the remaining entry points (reconciliation, discount_entitlement, order_evidence, enterprise_multi_account, partner_resale, reference_dimensions) are grouped in references/related-commands.md.
| Parameter | Required | Description | Example |
|---|---|---|---|
| scope | Yes | Account / enterprise project / customer the question is about | the account of the current profile |
| billing_period | Yes | Billing period or time window (the third leg of the three-set) | 2025-04 |
| money_basis | Yes | Which money basis the answer must use | PAYMENT_AMOUNT / NET_AMOUNT, ORIGINAL_COST / AMORTIZED_COST |
| entry_point | Yes | Billing question type that drives the route | balance / spend / attribution / reconciliation |
| region | No (fixed) | BSS is a global service; every call uses cn-north-1 | cn-north-1 |
| customer_id | Conditional | Required by enterprise / partner entities | obtained from ListSubCustomers |
| limit / offset | No | Page size and offset; defaults limit<=10, offset=0 | --limit=10 --offset=0 |
Ask only for the missing point that would change the verification path (Three-Set First); never send a full clarification questionnaire.
The following three are derived from principles, non-negotiable.
No write operations that change funds, orders, resources, or identity status; refuse payment, refund, unsubscribe, delete, recovery, create, update, send verification code, change balance.
Why: Once a write occurs, the fact state that assertions depend on is contaminated by itself. List*/Show* with Change in name are still read-only ledgers, not in this category.
No output of credentials, long identifiers that can restore identity, complete business IDs, profile / region.
Why: Identity dimension disclosure exceeds evidence_boundary response scope; delivery value is unrelated to disclosure degree.
Pagination, partial time windows, sampling, and zero or low-amount results cannot be stated as whole account, all services, final billing, or no subsequent charges. Why: Grain does not allow amplification; conclusions at local grain cannot be declared as facts at coarser grain unless evidence money_basis already covers entire month.
hcloud profile; BSS calls always carry --cli-region=cn-north-1.hcloud command and must run through huaweicloudsdkbss. The CLI profile credentials are not inherited by the SDK: HW_ACCESS_KEY / HW_SECRET_KEY (temporary credentials also HW_SECURITY_TOKEN) must exist in the environment. Check presence only, never the value:
python3 -c "import os; print('ok' if os.getenv('HW_ACCESS_KEY') and os.getenv('HW_SECRET_KEY') else 'missing')"
403 Forbidden (CBC.0151). Handling: see references/iam-policies.md → Permission Failure Handling.5xx, timeouts and network errors as transient: retry the same read-only command at most twice with identical parameters, then stop.List* / Show*) and therefore naturally idempotent: re-running a query does not change funds, orders, resources or identity status, and is safe after a transient failure.limit<=10, offset=0; when locating prerequisite IDs stay within the most recent 3 billing periods, 3 pages per command, limit<=50 per page (see references/related-commands.md → Global Constraints).### No Extrapolation.hcloud >= 7.2.2 with a configured profile; BSS read-only IAM policy; Chinese CLI mode (hcloud configure set --cli-lang=cn).huaweicloudsdkbss (Python) only for operations without a CLI command.python3 -c "import numpy" 2>/dev/null && echo available || echo missing
Briefing-style delivery: conclusion first, facts later; only write what was found, state money_basis clearly.
· list or short paragraphs, no Markdown tables (IM-friendly).profile / region. Gaps only provide one read-only next step (business wording), not "please reconcile yourself".references/cli-installation-guide.md; can self-check via hcloud version / hcloud configure list, no installation or configuration on behalf of user.hcloud <Service> <Operation> --cli-region=<region> [--key=value ...] — underlying syntax of every command in this skill.
BSS (never account, bill, or another sub-service)ShowCustomerAccountBalances, ListCosts--cli-region=<value>; for BSS always --cli-region=cn-north-1--key=value, e.g. --bill_cycle=2025-04--key.1=value1, e.g. --filters.1.operator=0--key.sub_key=value, e.g. --time_condition.begin_time=2025-04-01| Reference | Description |
|---|---|
references/semantic/catalog.yml | Thin routing layer that maps scope/time/money_basis to billing-ontology.yml entities |
references/semantic/billing-ontology.yml | Semantic ontology defining facts, scope, money basis, and read-only BSS operations |
references/related-commands.md | Provides copyable BSS CLI command templates with parameter formats |
references/iam-policies.md | Defines minimum IAM read-only permissions required for BSS queries |
references/cli-installation-guide.md | Huawei Cloud KooCLI Installation Guide |
references/verification-method.md | Specification-compliance and functional verification steps |
references/acceptance-criteria.md | Acceptance criteria for this skill |