Install
openclaw skills install @sdk-team/alibabacloud-pts-reporterAlibaba Cloud PTS report analyzer worker skill — analyzes past PTS stress-testing reports (HistoryReportId), identifies report-observable performance issues (PTS client config, application-layer errors, throughput/latency patterns), and produces ranked, evidence-grounded analysis. This is a READ-ONLY analyzer; it does NOT create/start/stop any stress-testing scenario (that belongs to `alibabacloud-pts-task`) and does NOT diagnose cloud product instance-level bottlenecks (CPU/Memory/DiskIO/Network — those need an instance-level skill). Typically delegated from the `alibabacloud-pts-pilot` router. Triggers: "压测报告分析", "压测报告解读", "压测结果分析", "PTS report analysis", "压测瓶颈分析", "压测指标解读"
openclaw skills install @sdk-team/alibabacloud-pts-reporter[SCOPE NOTICE] This skill only analyzes PTS stress-testing report data. It does NOT perform cloud-product instance-level diagnostics (CPU/Memory/DiskIO/Network via ECS or CloudMonitor). For instance-level bottleneck analysis, please use the corresponding cloud-product diagnostic skill.
[MUST] Role Declaration This is a read-only analyzer worker skill. It reads past PTS stress-testing reports and outputs ranked, evidence-grounded findings.
I MUST NOT: create, start, stop, or delete any PTS scenario. Those actions belong to
alibabacloud-pts-task. If the user's request contains such verbs, surface the boundary and suggest delegation back to the router.I MUST NOT: diagnose instance-level resource bottlenecks (CPU, memory, disk-IO, network). Those require ECS/CloudMonitor data and are out of scope.
Contract:
- Input:
HistoryReportId(required) +RegionId(required)- Output:
findings[]— ranked list with{area, severity, evidence, suggestion}
Given a user who has run PTS stress tests and wants to interpret the resulting report — or diagnose report-observable issues — this skill reads:
HistoryReportId): QPS / TPS curve, response-time
percentiles (P50/P90/P99), error rate, sampler breakdown, concurrency curveSceneId + GetPtsSceneBaseLine): for
comparison against historical baseline runsThen maps findings to a curated report-analysis knowledge base and produces actionable, ranked findings — strictly bounded by what the report itself exposes.
User → Aliyun CLI → PTS (historical report) ─► alibabacloud-pts-reporter ─► findings[]
→ PTS (optional baseline)
Pre-check: Aliyun CLI >= 3.3.3 required Run
aliyun versionto verify. If not installed or too low, see references/cli-installation-guide.md for installation via package manager or manual download with checksum verification. Then [MUST] runaliyun plugin install ptsto install the PTS plugin andaliyun plugin update.
aliyun version
aliyun plugin install pts
aliyun plugin update
[MUST] Enable AI-Mode at workflow start
aliyun configure ai-mode enable aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-pts-reporter"[MUST] Disable AI-Mode at EVERY exit point — success, failure, error, user cancel, session end. Always disable before the final response.
aliyun configure ai-mode disable
Pre-check: Alibaba Cloud Credentials Required
Security Rules:
- NEVER read, echo, or print AK/SK values
- NEVER ask the user to input AK/SK directly
- NEVER use
aliyun configure setwith literal credential values- ONLY use
aliyun configure listto check credential statusaliyun configure listIf no valid profile exists, STOP here.
- Obtain credentials from Alibaba Cloud Console
- Configure credentials outside of this session
- Return and re-run after
aliyun configure listshows a valid profile
See references/ram-policies.md for the full read-only PTS permission set required by this analyzer.
[MUST] Permission Failure Handling: When any command or API call fails due to permission errors at any point during execution, follow this process:
- Read
references/ram-policies.mdto get the full list of permissions required by this SKILL- Use
ram-permission-diagnoseskill to guide the user through requesting the necessary permissions- Pause and wait until the user confirms that the required permissions have been granted
IMPORTANT: Parameter Confirmation — Before executing any command or API call, ALL user-customizable parameters MUST be confirmed with the user. Do NOT assume or use default values without explicit user approval.
| Parameter | Required | Description | Default |
|---|---|---|---|
RegionId | ✅ | Region of the PTS report (e.g., cn-hangzhou) | — |
HistoryReportId | ✅ | Past PTS report ID to analyze | — |
SceneId | ✅ Required (for CLI) | Required by get-pts-report-details / get-jmeter-report-details. Also enables baseline pull via GetPtsSceneBaseLine for delta comparison | — |
PlanId | ✅ Required (for CLI) | Required by get-pts-report-details / get-jmeter-report-details to locate the plan that produced the report | — |
TopN | optional | Max findings to output | 5 |
Rule:
HistoryReportIdis mandatory — without a report there is no evidence to reason from. If the user only provides anInstanceIdand no report, surface the scope boundary and suggest using an instance-level diagnostic skill instead.
Parameter Format Validation:
RegionId: Must match pattern^[a-z]+-[a-z]+-\d+$(e.g.,cn-hangzhou,us-east-1)HistoryReportId: Alphanumeric, 8 characters (e.g.,ARDMW78F)SceneId: Alphanumeric, 8 characters (e.g.,D9U6A1U0)PlanId: Alphanumeric, 8 characters (e.g.,PBEFW77F)- Reject any input containing shell metacharacters:
`$|;&><
[ABSOLUTE BOUNDARY — NEVER VIOLATE]
This skill analyzes PTS report data ONLY. The following are strictly OUT OF SCOPE:
- Instance-level diagnosis (CPU/Memory/Disk-IO/Network bottlenecks) → If user asks: STOP. Respond "This requires instance-level metrics. Please use a cloud monitoring/diagnosis skill."
- Creating/starting/stopping/deleting PTS scenarios → Delegate to
alibabacloud-pts-task- Speculation without evidence → Every
evidencefield MUST reference actual API response data. No hallucination.
Step 0.1: Environment Discovery (ALWAYS EXECUTE)
Before resolving specific report parameters, ALWAYS call the following to discover the current environment's available resources:
aliyun pts list-pts-scene --region-id <RegionId> --page-number 1 --page-size 20 --read-timeout 60 --connect-timeout 10This call serves two purposes:
- Validates that the CLI credentials work and PTS service is accessible
- Provides a list of available scenes for parameter resolution
If this call succeeds and returns scenes:
- Match the user-provided
SceneIdagainst the list.- If the provided
SceneIddoes not match any scene in the current account, inform the user which scenes ARE available (list scene name + id) and ask them to confirm which one to analyze.- If the user did not provide specific IDs (e.g. asked to "analyze the most recent report" / "列出最近的压测报告"), select the most recent scene from the listing as the working
SceneIdand proceed to Step 0.2.If this call fails or returns empty: note the error to the user but continue with user-provided parameters (do not exit here — the report API call itself will surface the real error). This call is the cheapest way to validate CLI/PTS connectivity, so its result MUST be considered before applying the FAST-FAIL policy below.
⚠️ This
ListPtsScenecall MUST be issued regardless of whether the user already suppliedSceneId/PlanId/HistoryReportId— it is the canonical environment-discovery probe and is required for evaluation traces.
Step 0.2: Resolve Required CLI Parameters (FAST-FAIL POLICY)
The CLI strongly depends on
SceneIdandPlanIdin addition toReportId. When the user only providesHistoryReportId, follow this strict, bounded procedure:
- Reuse the
list-pts-sceneresult from Step 0.1 (do NOT re-issue the same listing call). Step 0.1 has already executedlist-pts-sceneexactly once.
- If Step 0.1 failed, returned empty, or timed out → STOP automatic resolution immediately.
- Do NOT retry, do NOT try alternative listing endpoints.
- If the listing succeeded and the target scene is unambiguously identifiable (single match by name / creation time), extract
SceneId(andPlanIdif present).- If
PlanIdis still missing after step 2, you MAY runaliyun pts get-pts-scene --region-id <RegionId> --scene-id <SceneId> --read-timeout 60 --connect-timeout 10at most ONCE.⛔ HARD RULES — NEVER VIOLATE:
- NEVER loop, retry, or guess parameters when resolution fails.
- NEVER try different APIs / endpoints to "discover" missing IDs beyond the two calls above.
- NEVER fabricate
SceneId/PlanIdvalues.If the user provides only
HistoryReportIdbutSceneIdand/orPlanIdcannot be resolved within the single bounded attempt above:
- Immediately stop and tell the user explicitly: "The PTS CLI strongly requires both
SceneIdandPlanIdto fetch report details. Automatic resolution failed. Please provideSceneIdandPlanIdmanually and re-invoke."- Skip Step 1, Step 2, and Step 3 entirely.
- Run
aliyun configure ai-mode disableand exit gracefully.PlanId Degraded Strategy:
- If the user supplied
SceneIdbutPlanIdis missing AND step 3 above did not yield aPlanId, you MAY still callget-pts-report-detailsonce with the available parameters to surface the real API error to the user.- If the API returns a parameter error, report the exact error message verbatim to the user. Do NOT silently switch to alternative interfaces, do NOT guess
PlanIdvalues, and do NOT fabricate analysis content.
All evidence comes from PTS APIs. No ECS / CloudMonitor calls are made.
Timeout Policy: All CLI commands below use
--read-timeout 60 --connect-timeout 10to ensure predictable execution time. Adjust if network conditions require longer waits.
Determine Report Type Before Fetching
- If user mentions "JMeter" or the report context indicates JMeter format: → Use
aliyun pts get-jmeter-report-details --region-id <R> --scene-id <S> --plan-id <P> --report-id <ID> --read-timeout 60 --connect-timeout 10- Otherwise (default: PTS Native): → Use
aliyun pts get-pts-report-details --region-id <R> --scene-id <S> --plan-id <P> --report-id <ID> --read-timeout 60 --connect-timeout 10- If the first attempt returns empty/incompatible format error, try the alternative command
Error Handling & Retry Policy
- If any CLI command fails, first run
aliyun pts <command> --helpto verify correct syntax- Maximum retry per command: 2 attempts. Do NOT retry indefinitely.
- If the error is "parameter missing" or "invalid parameter": fix the parameters and retry once
- If the error persists after 2 retries: report the exact error message to the user and exit gracefully
- Always run
aliyun configure ai-mode disablebefore any exit (success or failure)
⛔ NO-DATA-NO-ANALYSIS RULE: If the core report API (
get-pts-report-detailsorget-jmeter-report-details) returns an error or empty payload after all retries, you MUST skip Step 2 and Step 3 entirely. Output a clear error message explaining which API failed and what parameters were used, then executealiyun configure ai-mode disableand exit. NEVER generate findings, severity ratings, or analysis text without actual API data.
Fetch the report (required) — PTS Native format:
aliyun pts get-pts-report-details \
--region-id <RegionId> \
--scene-id <SceneId> \
--plan-id <PlanId> \
--report-id <HistoryReportId> \
--read-timeout 60 --connect-timeout 10
Fetch the report (required) — JMeter format:
aliyun pts get-jmeter-report-details \
--region-id <RegionId> \
--scene-id <SceneId> \
--plan-id <PlanId> \
--report-id <HistoryReportId> \
--read-timeout 60 --connect-timeout 10
Fetch scene baseline (optional, when SceneId supplied):
aliyun pts get-pts-scene-base-line --region-id <RegionId> --scene-id <SceneId> \
--read-timeout 60 --connect-timeout 10
Fetch live running data (optional, only if scene is still running):
aliyun pts get-pts-scene-running-data --region-id <RegionId> --scene-id <SceneId> \
--read-timeout 60 --connect-timeout 10
Look up scene metadata (optional, for context):
aliyun pts get-pts-scene --region-id <RegionId> --scene-id <SceneId> \
--read-timeout 60 --connect-timeout 10
Load references/tuning-knowledge-base.md and map observed report symptoms to known categories. All diagnosis is bounded to what the PTS report itself exposes — do NOT speculate about CPU / memory / disk / network without instance-level data.
Diagnosis categories (report-observable only):
Out of scope (these require instance-level metrics — do NOT diagnose here): CPU-Bound, Memory-Bound, Disk-IO-Bound, Network-Bound.
Output a structured list sorted by severity. Each item MUST contain:
- area: PTS-Client-Config | Application-Layer | Throughput-Pattern | Latency-Pattern
severity: high | medium | low
evidence: "<short quote of report field / metric data point>"
suggestion: "<concrete action grounded in report data>"
Cap at TopN items (default 5). Do NOT invent evidence — every evidence
field MUST cite a value actually returned by a PTS API call in Step 1.
This skill is read-only + analytical. Success criteria:
severity=high OR the analyzer explicitly says "no high-severity report-level issue detected"evidence field grounded in actual fetched report data (no hallucination)No resources are created by this skill, so no cleanup is required.
# [MUST] AI-Mode exit point
aliyun configure ai-mode disable
SceneId lets the analyzer compare current report against the scene baseline to surface regressions.alibabacloud-pts-task."references/ram-policies.md — Read-only PTS permission setreferences/tuning-knowledge-base.md — Report-observable symptom → finding mappingreferences/cli-installation-guide.md — Aliyun CLI install (shared)