This skill manages test pipelines on the Testany platformthrough the Testany MCP tools. All operations are remote API calls to the Testany platform and do not involve the local file system.
Note:
- If the user needs toexecute a pipeline or view execution status, please tell them to use the
/testscommand - If the user needs to creategatesorscheduled plans, please tell them to use the
/orchestratorcommand
User input: $ARGUMENTS
Operation Quick Reference
| User Intent | Operation Type | Tool |
|---|---|---|
| Create a new pipeline | Create | testany_create_pipeline |
| View pipeline details | Read | testany_get_pipeline |
| View pipeline YAML | Read | testany_get_pipeline_yaml |
| Search/list pipelines (by workspace) | Read | testany_list_pipelines |
| List my pipelines (by workspace) | Read | testany_list_my_pipelines |
| Modify pipeline configuration | Update | testany_update_pipeline |
| Delete a pipeline | Delete | testany_get_pipeline_used_by → testany_delete_pipeline |
| Validate YAML syntax | Validate | testany_verify_pipeline |
| Check references | Query | testany_get_pipeline_used_by |
Logic for selecting cases
When the user describes a test scenario (such as "create a pipeline for testing the subscription flow"), suitable cases need to be selected from existing cases.
Information usable for judgment
After calling testany_list_cases or testany_get_case to obtain case information, the fields usable for judgment are:
| Field | Purpose | Reliability |
|---|---|---|
case_labels |
Filter by User Story number or functional module | High (if filled in) |
description |
Understand the test scenario and preconditions | Medium (depends on quality of filling in) |
environment_variables[].description |
Understand the semantics of input/output variables | Medium (if filled in) |
name |
Simply judge the test content | Low (may not be detailed enough) |
Selection process
Step 1: Try filtering by case_labels
If the user mentions a User Story number or functional module:
用户:"创建测试 US-G006 的 pipeline"
→ 在 case_labels 中查找包含 "US-G006" 的 cases
Step 2: Try semantic matching by description
If the label filtering results are insufficient, read the case description:
用户:"创建测试订阅流程的 pipeline"
→ 查找 description 中提到"订阅"、"subscribe"、"Gallery Item" 的 cases
Step 3: Analyze dependencies
Look for "precondition" information in the descriptions of the matched cases:
description: "...前置条件:需要登录状态(AUTH_TOKEN 来自 LOGIN case)"
→ 识别出依赖 LOGIN case
Look for variable sources in environment_variables[].description :
{ "name": "AUTH_TOKEN", "type": "env", "description": "登录令牌,来自 LOGIN case" }
→ 识别出需要 LOGIN case 的输出
Important principle: no guessing
If the above informationis insufficient to determine:
- which cases should be selected
- the dependency order between cases
- how Relay variables should be configured
you must use AskUserQuestion to ask the user, rather than guessing.
Scenarios where the user needs to be asked
| Scenario | Example question |
|---|---|
| Neither case_labels nor description has clear information | "I found the following cases; please confirm which should be included in the pipeline: ..." |
| Cannot determine the execution order | "Is there a dependency between Case A and Case B? Which one should execute first?" |
| Unable to determine Relay configuration | "Should Case A's TOKEN output be passed to Case B's AUTH_TOKEN?" |
| Multiple potentially matching cases found | "Found 3 cases related to 'subscription', please confirm which ones to include:..." |
Error example
❌ 猜测:description 没写清楚,但变量名是 TOKEN,应该是认证令牌吧
❌ 猜测:这两个 case 名字看起来有关联,应该有依赖关系
❌ 猜测:用户说"订阅流程",这个 case 名字有"subscribe",应该是对的
✓ 正确:信息不足,使用 AskUserQuestion 让用户确认
Single Pipeline operations
Create
Creating a new pipeline requires the following steps:
Phase 1: Collect information (parallel calls)
Call the following tools simultaneously to get the available options:
testany_list_casesortestany_list_my_cases→ Get the list of available casestestany_get_my_workspaces→ Get the list of workspaces the user has permission for
Phase 2: Ask the user (AskUserQuestion)
Use AskUserQuestion to ask:
| Question | Type | Description |
|---|---|---|
| Pipeline name | User input | - |
| Owning workspace | Single select | Determines the workspace the pipeline belongs to; the pipeline_key prefix is the workspace_key |
| Cases to orchestrate | Multiple select or user description | The user selects or describes the execution order and dependencies |
Phase 3: Build YAML (or use case_keys)
Depending on the user's needs, there are two approaches:
Approach A: Build YAML(complex orchestration)
- Determine execution order: Determine the execution order of the cases based on the user's description
- Configure dependencies: If there are dependencies, add
whenPassedorwhenFailed - Validate Relay(if any):
- Call
testany_get_caseto check whether the source case has thetype='output'variable - Call
testany_get_caseto check whether the target case has thetype='env'variable
- Call
- Generate YAML: Format according to Pipeline YAML syntax Format
Approach B: Use case_keys(simple sequential execution)
- Pass in the case keys array directly; the system automatically generates a sequentially executed YAML
Phase 4: Create pipeline
Call testany_create_pipeline:
| Parameter | Required | Description |
|---|---|---|
name |
Yes | pipeline name |
workspace |
Yes | Owning workspace key |
description |
No | Description |
definition |
No | Pipeline YAML configuration (Approach A) |
case_keys |
No | Case keys array (Approach B, choose one of the two with definition) |
Phase 5: Validation (optional)
Call testany_verify_pipeline to validate whether the YAML syntax is correct.
Read
| Scenario | Tool | Description |
|---|---|---|
| Get pipeline details | testany_get_pipeline |
Pass in the pipeline key |
| Get YAML content | testany_get_pipeline_yaml |
Pass in the pipeline key |
| Search/list pipelines (by workspace) | testany_list_pipelines |
workspace Required, supports keywords and more filter conditions |
| List only my pipelines (by workspace) | testany_list_my_pipelines |
workspace Required |
Update
Updatable fields
| Parameter | Description |
|---|---|
name |
pipeline name |
description |
description |
definition |
Execution rule YAML (choose one of this and case_keys) |
case_keys |
Case keys array (choose one of this and definition) |
environments |
Environment label list |
owned_by |
Owner email (ownership can be transferred) |
pipeline_labels |
Pipeline label list (must exist in tenant labels) |
Note: Pipeline's creator(creator) cannot be updated, but owned_by(owner) can be transferred to other users.
Update process
- Call
testany_get_pipelineto get the current configuration - Call
testany_get_pipeline_yamlto get the current YAML (if orchestration needs to be modified) - Use AskUserQuestion to confirm which fields to modify and their new values
- If modifying YAML, re-validate Relay constraints
- Call
testany_update_pipelineto submit the update
Delete
Before deleting, you must check the reference situation:
- Call
testany_get_pipeline_used_byto check whether it is referenced by a Plan or Gatekeeper - If there is a reference, inform the user that the reference needs to be removed first
- If there is no reference, call
testany_delete_pipeline
Warning: This operation cannot be undone.
Bulk Pipeline operations
List / Search
| Scenario | Tool |
|---|---|
| Search all pipelines | testany_list_pipelines |
| List only my pipelines | testany_list_my_pipelines |
Supported filter conditions:
workspace- Filter by workspace (required)keyword- Search by name keywordowned_by- Filter by owner (email list)environments- Filter by environment labelspipeline_labels- Filter by pipeline labelscase_keys- Filter by included case keyspipeline_labels- Filter by pipeline labelspage/page_size- Pagination
Auxiliary operations
Verify
Call testany_verify_pipeline to verify the YAML syntax:
- Check whether the
kindversion is correct (must berule/v1.2) - Check whether the
rulesstructure is valid - Check whether dependency relationships satisfy DAG constraints
Common copy-paste mistake: The first line of the YAML must start writing kind:at column 1 (there must be no spaces at the beginning of the line), otherwise the backend cannot detect the schema version and will report an error.
Query Used By
Call testany_get_pipeline_used_by to query which resources reference the pipeline:
- Plan (scheduled plan)
- Gatekeeper (quality gate)
Use cases: check before deletion, assess the scope of impact of modifications
Complete tool list
11 MCP tools in total:
Pipeline CRUD (7)
testany_create_pipeline- Create pipelinetestany_get_pipeline- Get pipeline detailstestany_get_pipeline_yaml- Get YAML contenttestany_list_pipelines- Search/list pipelinestestany_list_my_pipelines- List my pipelinestestany_update_pipeline- Update pipelinetestany_delete_pipeline- Delete pipeline
Auxiliary (2)
testany_verify_pipeline- Validate YAML syntaxtestany_get_pipeline_used_by- Check references
Execution-related (2)
testany_execute_pipeline- Execute pipeline (recommended to use/tests)testany_get_pipeline_status- Get execution status (recommended to use/tests)
Note: Although execution-related tools belong to the pipeline category, users are recommended to use the /tests skill for execution and monitoring operations.
Common issue handling
| Scenario | Handling method |
|---|---|
| User has no case but wants to create a pipeline | Recommend first using /case to create a test case |
| Simple sequential execution (no dependencies) | Use the case_keys parameter, no need to write YAML manually |
| Need to configure Relay | 1) First verify the source case has the type='output' variable, 2) verify the target case has the type='env' variable |
| "Referenced" error on deletion | Call testany_get_pipeline_used_by to view referencing parties; recommend the user release them first |
| Update an existing pipeline | First testany_get_pipeline + testany_get_pipeline_yaml to get the current configuration |
| Want to execute pipeline | Tell the user to use the /tests command |
| Want to create a scheduled plan or gate | Tell the user to use the /orchestrator command |
Return format
After the task is complete, report to the user:
- Pipeline Key (e.g.
Y2K-0001A) - Pipeline name
- Owning workspace
- Number of included Cases and execution order
- Relay configuration summary (if any)
- Next-step suggestions (e.g. "you can use
/teststo execute the pipeline" or "you can use/orchestratorto set up a scheduled plan")
Consult official documentation
When encountering uncertain issues, consult the Testany official documentation:
- Get documentation structure:
WebFetch https://docs.testany.io/sitemap.xml - Find the relevant page: Search keywords from the sitemap (e.g.
pipeline、relay、yaml) - Read the specific page:
WebFetch https://docs.testany.io/en/docs/<page-name>/
Common documentation pages:
/en/docs/managing-pipeline/- Pipeline management/en/docs/relay-variables-between-cases/- Relay configuration/en/docs/pipeline-yaml-syntax/- YAML syntax details
Reference documentation
For detailed configuration rules, please refer to:
- Pipeline YAML syntax - Includes YAML structure, dependency rules, Relay constraints
- Core concepts - Includes Pipeline definition, execution status codes