
huawei-cloud-vod-collector
Invoke this skill to capture poor experiences and distill them into high-value requirements (Voice of Developer). Use when user encounters any Huawei Cloud related issues, like user expresses dissatisfaction, encounters errors, or wants to report issues/suggestions.Triggers include: "体验差","反馈问题","反馈建议","这个有bug","拒绝了请求","报告问题","反馈体验","report a problem","report a suggestion","bug report","poor experience","voice of developer"
- Installs
- 17K
- Last 24h
- +105
- Trending rank
- #1927
- Security
- Warn
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-vod-collector- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads huawei-cloud-vod-collector automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
Security audits
Independent scans of the skill's instructions and bundled files.
SKILL.md
The instructions your agent reads when the skill is triggered.
VoD (Voice of Developer) Collector Skill
Script execution: All scripts are located in
<SKILL_DIR>/scripts/. You must wrap every script execution withskill-quality-cli run --skill-name huawei-cloud-vod-collector --(Mandatory mandate below); never run them bare.<SKILL_DIR>= directory containing this SKILL.md..vod/is relative to CWD (project working directory).
Overview
The VoD (Voice of Developer) Collector captures poor developer experiences and issues encountered while using Huawei Cloud tools or services. It prepares high-quality requirements or issue reports (GitCode issues) for product and engineering teams. The skill is declarative: it collects feedback with scripts and a hooks-based capture pipeline, deduplicates, sanitizes, and delivers prioritized issues to a GitCode repository.
Dependency: Quality telemetry is collected automatically via skill-quality-cli (installed by <SKILL_DIR>/scripts/ensure_cli.sh if absent).
Core Commands
Common CLI examples grouped by function (all scripts under <SKILL_DIR>/scripts/):
- Capture
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/md_io.py write-feedback --output .vod/feedbacks/
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_sanitize.py file --path <file>
-
Extract / Edit (use
write-feedbackto update fields or edit feedback files directly) -
Deliver
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_deliver.py deliver --feedback-id <id> --feedbacks-dir .vod/feedbacks
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_deliver.py update-status --feedback-id <id> --status delivered --feedbacks-dir .vod/feedbacks
- Auto-login (only when
deliverreturnsneed_login)
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- bash <SKILL_DIR>/scripts/vod_install.sh
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_deliver.py server-start
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- curl -s -X POST http://localhost:8080/login/start
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_deliver.py login-wait --session-id <session_id>
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_deliver.py server-stop --pid <pid>
Parameter Confirmation
The following parameters can be configured by users or integrators:
--feedbacks-dir/--output: Feedback storage directory.md_io.py write-feedbackwrites via--output;vod_deliver.py(deliver/update-status) reads via--feedbacks-dir. Both default to.vod/feedbacks/and accept the same value (equivalent per-command naming).--atomgit-home/ATOMCODE_HOME: AtomGit-GO configuration directory, default~/.atomcode.delivery.channels.gitcode.repo_url: Target repository URL — read only fromassets/config.yaml.capture.dedup_window_sec: In-session deduplication window in seconds.storage.max_feedbacks_per_session: Maximum stored feedbacks per session (default 5).- Logging/Debug: Optional flags inside scripts to enable additional logging or debug modes.
Before delivery or auto-login, ensure the repo_url is provided via assets/config.yaml and is not inferred from git remote.
References
See additional implementation details and integration guides in the repository:
- references/hooks-setup.md
- references/openclaw-integration.md
- assets/VOD_FEEDBACKS.md
- assets/VOD_ISSUE.md
- references/acceptance-criteria.md
- references/verification-method.md
Prerequisites
Python dependencies
Install required Python packages before running any scripts:
pip install -r <SKILL_DIR>/requirements.txt
skill-quality-cli— ensured bybash <SKILL_DIR>/scripts/ensure_cli.sh(idempotent, skips if present)- Upgrade: run
skill-quality-cli upgrademanually (no auto-upgrade) - Disable telemetry report: set
SKILL_QUALITY_REPORT=0
- Upgrade: run
**⚠️ Mandatory: every script execution in this skill MUST be wrapped with
skill-quality-cli run --skill-name huawei-cloud-vod-collector --(e.g.skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/md_io.py write-feedback ...) — bare invocations ofpython/md_io.py/vod_sanitize.py/vod_deliver.py/vod_install.*/curlare strictly forbidden. Disable telemetry (opt-out):SKILL_QUALITY_REPORT=0. Bootstrapping exception:ensure_cli.sh/install_cli.share the installers themselves, so they may be executed bare (unwrapped) whenskill-quality-cliis not yet installed; all other script executions must be wrapped once the CLI exists.
Workflow
Phase 1: Capture
Triggered by hooks (tool errors, user rejection, proactive reports). Generates raw feedback.
1.1 Generate Raw Feedback
- Write the feedback file —
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/md_io.py write-feedback --output .vod/feedbacks/(see--helpfor all params) - Sanitize — secrets are redacted automatically by
write-feedback. To manually sanitize an existing file:skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_sanitize.py file --path <file>
1.2 Deduplication
- In-session (during write): Same
session_id + command + error_typewithincapture.dedup_window_sec→ incrementrecurrence_countinstead of writing a new file. - Cross-session (before Phase 3 delivery): Scan 10 recent feedbacks via LLM for duplicates.
Phase 2: Extract
Note: This phase is executed by the Agent (LLM) directly — there is no independent extraction script. The Agent enriches the feedback file using
write-feedbackto update fields.
Enrich feedback with context using LLM, then write all fields directly into the feedback file.
Each field maps to a specific section in the markdown file:
error_stack— Extract traceback/exit code from error context →## Error Information → error_stackuser_intent— What the user wanted to do (e.g. "create OBS bucket"), NOT how →## Context → user_intentscenario— Reconstruct what the user was doing →## User Report → scenarioexpected_behavior— What the user expected. From dialog if explicit, otherwise infer from error →## User Report → expected_behaviorproduct_name— Priority: annotation > agent_action > error_message → Title prefix【Product】environment— Platform, OS, session ID, Python version →## Context → environmentdialog_context— 3-5 key turns around the problem point, preserve original language →## Context → dialog_context
Use write-feedback again to update fields, or edit the markdown file directly.
Phase 3: Deliver
3.1 Sync to GitCode Issue
⚠️
repo_urlcomes only fromassets/config.yaml→delivery.channels.gitcode.repo_url. Never usegit remote, never ask the user.
Single delivery — submit one feedback as a GitCode Issue:
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_deliver.py deliver \
--feedback-id <id> \
--feedbacks-dir .vod/feedbacks
Update status — mark a feedback as delivered (or other status):
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_deliver.py update-status \
--feedback-id <id> --status delivered --feedbacks-dir .vod/feedbacks
Auto-login — when deliver returns "need_login": true, perform the following:
Pre-check (MCP shortcut — try first): Before starting the QR-code login flow below, check whether the
devspace-connectorMCP server exposes agitcode_create_issue(orcreate_issue) tool. If the tool exists AND is callable, use it to create the issue directly — thedeliverresponse now carriesrepo_url,issue_title, andissue_bodyfor this purpose. After the MCP tool creates the issue, runupdate-status --status deliveredand skip the QR-code login steps 1–8 below.If the connector is unavailable — for ANY reason (server not connected, not configured, tool absent, or call fails): directly fall back to the QR-code login flow below. Do NOT ask the user whether to connect the MCP server or present any choice — proceed silently to step 1 of the fallback. Any attempt to "enable/connect the connector" is out of scope here and must NOT be offered as an option.
CRITICAL: Before installation, MUST tell the user:
- This login uses the open-source project AtomGit-GO (MIT license).
- Source: https://gitcode.com/weixin_45218422/AtomGit-GO
-
Check & install: Execute
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- bash <SKILL_DIR>/scripts/vod_install.sh(Linux/macOS) orskill-quality-cli run --skill-name huawei-cloud-vod-collector -- powershell <SKILL_DIR>/scripts/vod_install.ps1(Windows). -
Start server:
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_deliver.py server-start→ getpidfrom JSON output -
Initiate QR login:
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- curl -s -X POST http://localhost:8080/login/start→ getlogin_url,qr_code,session_idfrom JSON -
Show QR to user: Display the
login_urland ASCIIqr_code. Say: "🔐 First-time login requires AtomGit authorization. Scan the QR code or open the URL in your browser." -
Wait for authorization:
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_deliver.py login-wait --session-id <session_id>— blocks until scanned (up to 60s). Do NOT ask the user whether they scanned; just wait. -
On
SCAN_SUCCESS, proceed to step 7.CRITICAL: After successful authorization, MUST output the Security Notice:
- Security Notice: The AtomGit-GO login flow persists the token only to
${ATOMCODE_HOME:-$HOME/.atomcode}/auth.toml(owner-readable only, mode 0600). Anyone with file access can impersonate you — do not share this file. - Note: Stored only in the local AI Shell environment. It will not be uploaded to any external server.
- Deletion: Manually delete the file, or it will be cleaned up when the environment resources are reclaimed.
- Security Notice: The AtomGit-GO login flow persists the token only to
-
Stop server:
skill-quality-cli run --skill-name huawei-cloud-vod-collector -- python <SKILL_DIR>/scripts/vod_deliver.py server-stop --pid <pid> -
Re-run the original
delivercommand.
Behavioral Constraints
- Cancel: Clean up current file only. Never delete
.vod/or other records. - Decline: Skip silently, do not suppress future triggers.
- Validation: Only product/service issues. No empty/minimal content ("test", "hello").
- Session limit: Max
storage.max_feedbacks_per_session(default 5). Exceeded → inform user. - Updates: In-place only. ID immutable. State machine:
open → delivered → promoted → resolvedoropen → delivered → discarded(deliveredis the post-delivery state written byupdate-status --status delivered). - Auto-init:
.vod/created on first use. Never overwritten. - Quality telemetry (mandatory): every script/command execution is wrapped with
skill-quality-cli run --skill-name huawei-cloud-vod-collector --; disable viaSKILL_QUALITY_REPORT=0(opt-out).
Storage
- Path:
<CWD>/.vod/feedbacks/ - Format:
VOD-YYYYMMDD-NNNN.md
CLI Reference
| Parameter | Description |
|---|---|
--atomgit-home <path> | AtomGit-GO config dir (default: ~/.atomcode or $ATOMCODE_HOME) |
--feedback-id <id> | Feedback ID to deliver/update |
--feedbacks-dir <path> | Path to .vod/feedbacks/ |
KooCLI region
KooCLI invocations accept the global parameter --cli-region=<region>
(e.g. hcloud ECS ListServers --cli-region=cn-north-4). In this skill all
hcloud calls go through scripts/hcloud-run.sh, which injects
--cli-region automatically from the HW_CLI_REGION environment variable
when set (and the command does not already pass it).
Token Configuration
- Token from open-source AtomGit-GO, saved in plaintext to
~/.atomcode/auth.toml(mode0600) - Security Note: GitCode API v5 requires
access_tokenas a URL query parameter. The token may appear in proxy/load-balancer/server logs. Error responses are redacted, but normal request URLs are not. This is a GitCode API limitation. - Override:
--atomgit-home <path> - Missing/expired → script returns
"need_login": true→ follow Phase 3.1 auto-login - Never write token to any file outside
~/.atomcode/auth.toml
FAQ
What does the huawei-cloud-vod-collector skill do?
Invoke this skill to capture poor experiences and distill them into high-value requirements (Voice of Developer). Use when user encounters any Huawei Cloud related issues, like user expresses dissatisfaction, encounters errors, or wants to report issues/suggestions.Triggers include: "体验差","反馈问题","反馈建议","这个有bug","拒绝了请求","报告问题","反馈体验","report a problem","report a suggestion","bug report","poor experience","voice of developer"
How do I install huawei-cloud-vod-collector?
Run npx skills add https://github.com/huaweicloud/huaweicloud-skills --skill huawei-cloud-vod-collector in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/huawei-cloud-vod-collector/ (personal) or .claude/skills/huawei-cloud-vod-collector/ (project).
Which AI agents can use huawei-cloud-vod-collector?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is huawei-cloud-vod-collector safe to install?
Security partners have reviewed it: Gen Agent Trust Hub passed; Socket flagged items to review; Snyk flagged items to review. As with any skill, read the SKILL.md and bundled scripts before installing.
Who maintains huawei-cloud-vod-collector?
It is published by huaweicloud in huaweicloud/huaweicloud-skills. It has 16,985 recorded installs.
More from huaweicloud/huaweicloud-skills
huawei-cloud-terraform-installer
huaweicloud/huaweicloud-skills
Installs Terraform CLI cross-platform with Huawei Cloud mirror support. Use this skill whenever the user mentions installing Terraform, setting up Terraform environment, or when IaC tasks detect missing Terraform. Trigger: install terraform, setup terraform, terraform environment, huaweicloud provider.
huawei-cloud-find-skills
huaweicloud/huaweicloud-skills
Invoke this skill to search, list, query, discover, browse, find and install any Huawei Cloud (华为云) agent skill. Triggers include: "华为云", "华为云有什么skill", "华为云相关skill", "华为云agent skill 市场", "华为云skill类目", "explore Huawei Cloud skills", "show Huawei Cloud skill categories", "does a Huawei Cloud skill exist for...", "which Huawei Cloud skills exist", "搜索华为云技能", "查询华为云skill列表", "有没有管理ECS/OBS/RDS的skill", "帮我找 XX 华为云skill", "介绍 XX Skill 内容", "华为云 XX Skill 具体做什么", "安装华为云Skill".
huawei-cloud-billing-scout
huaweicloud/huaweicloud-skills
Huawei 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 only when the user explicitly mentions 华为云 / Huawei Cloud / BSS and 余额/账单/对账/资源包/代金券/储值卡/企业或伙伴账务; refuses pay, renew, refund, delete.
huawei-cloud-computing-query
huaweicloud/huaweicloud-skills
Queries Huawei Cloud computing resources (ECS/BMS/IMS/AS), Covers ECS instances, flavors, keypairs, quotas, server groups, block devices, NICs, VNC console, BMS bare metal servers/flavors/quotas, IMS images/OS versions/members/quotas, and AS scaling groups/configs/policies/activity logs/lifecycle hooks/warm pools/quotas. No write operations. Use this skill when the user needs to query ECS instance details, list flavors, check BMS availability, browse images, or view auto-scaling group/policy status. Triggers: 弹性云服务器, ECS, 裸金属, BMS, 镜像, IMS, 弹性伸缩, AS, 伸缩组, 伸缩策略, 规格查询, flavor, instance, image, scaling.
huawei-cloud-obs-upload
huaweicloud/huaweicloud-skills
Upload local files or directories to Huawei Cloud OBS (Object Storage Service) buckets, list OBS buckets with capacity and object count, and schedule periodic uploads via crontab. Use this skill when the user wants to: (1) upload a local file or directory to an OBS bucket, (2) list OBS buckets and check their storage capacity and object count, (3) set up a scheduled/periodic upload task to automatically sync a local directory to an OBS bucket. Triggers include: user mentions "OBS", "object storage", "bucket list", "bucket capacity", "upload to OBS", "upload file", "upload directory", "scheduled upload", "periodic upload", "sync to bucket", "对象存储", "桶列表", "桶容量", "上传文件", "上传目录", "定时上传", "OBS管理"
huawei-cloud-terraform-generator
huaweicloud/huaweicloud-skills
Generate Huawei Cloud Terraform configurations and execute deployment with user-guided approval. Use this skill when users want to create Huawei Cloud infrastructure as Terraform, whether they ask explicitly for Terraform or describe goals such as deploying a website, launching an application, or creating network, compute, database, load balancing, or storage resources. Trigger when users mention 创建/create、生成/generate、部署/deploy、配置/configure、使用/use、管理/manage、华为云/Huawei Cloud、Terraform、ECS、VPC、资源/resource、云服务器/ECS、虚拟机/VM、实例/instance、网络/network、负载均衡/ELB、数据库/database、RDS、存储/storage、OBS、桶/bucket、域名/domain、DNS、证书/certificate、SSL、监控/monitoring、日志/log、备份/backup、容器/container、CCE、函数工作流/FunctionGraph
Popular docs & writing skills
grill-with-docs
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
lark-markdown
open.feishu.cn
飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。
writing-beats
mattpocock/skills
Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.
writing-shape
mattpocock/skills
Writing, exploit: shape raw material into an article, paragraph by paragraph.
writing-fragments
mattpocock/skills
Writing, explore: mine raw fragments, no structure yet.
writing-for-agents
mattpocock/skills
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.