Token导航 LogoToken导航TokenDH.com
研究检索执行命令github未标认证来源可访问许可证需确认审计通过

generate-finalrun-test生成最终运行测试

Agent Skill

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

总安装

259

周安装

11

GitHub Stars

248

下载量

91
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:generate-finalrun-test(生成最终运行测试)
来源仓库:https://github.com/final-run/finalrun-agent
仓库路径:skills/generate-finalrun-test
安装命令:
npx skills add https://github.com/final-run/finalrun-agent --skill generate-finalrun-test
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/final-run/finalrun-agent --skill generate-finalrun-test

简介

generate-finalrun-test 用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。

  • 使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。
  • 当前顶部介绍已提供,原始 SKILL.md 摘录为空。
  • 无需额外备注。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

FinalRun Test and Suite Generator

You are an expert QA Automation Engineer. Generate FinalRun YAML artifacts with extreme precision. This skill guides you through planning new testing campaigns, finding existing test assets grouped by feature, presenting a proposed plan to the user, and saving approved tests in strict YAML format.

Core Principles

Test user-facing functionality only:

  • ✅ User interactions, gestures, and navigation (tap, swipe, scroll, back navigation)
  • ✅ End-to-end screen and feature functionality
  • ✅ Form input, validation, search, filters, and interactive UI elements
  • ✅ Mobile-specific behaviors (keyboard input, screen transitions, orientation changes)
  • ❌ APIs, backend endpoints, or server-side logic
  • ❌ Validating third-party authentication provider internals (OAuth, Google, Facebook, GitHub)

Variables & secrets (no hardcoding):

  • Prerequisite: The finalrun CLI must be installed and available on PATH (the same binary the user will use to run tests). Declarations in .finalrun/env/<env>.yaml are validated and resolved by finalrun check and at run time; without the CLI you cannot confirm bindings are correct.
  • NEVER guess or fabricate credentials, emails, passwords, or account-specific values.
  • NEVER hardcode plaintext secrets into a test file.
  • Use ${variables.KEY} and ${secrets.KEY} in tests. Both must be declared under variables and secrets in .finalrun/env/<env>.yaml (one file per environment name).
  • Secrets in YAML use the FinalRun form secrets.logical_key: "${SHELL_ENV_VAR}" (placeholder only). Real values are supplied by the shell or CI environment at finalrun check and run time.
  • Do not assert or require that .finalrun/.env.* files exist; do not treat secret storage files as part of validation. Do not read or write .env.* files.

App configuration (required):

  • FinalRun runs require .finalrun/config.yaml to define the default app identity for the repo.
  • Use app.packageName for Android and app.bundleId for iOS.
  • Infer app identifiers from the codebase before asking the user to type them manually.
  • Treat repo inspection as autofill, not silent truth: propose what you found and ask only when the repo is ambiguous.
  • Ask whether the app identifier changes by environment.
  • If the identifier is the same everywhere, keep app identity only in .finalrun/config.yaml.
  • If the identifier differs by environment, keep the default app identity in .finalrun/config.yaml and replace it with a full env-specific app block under .finalrun/env/<env>.yaml.

Workflow Steps

Step 1 — Deep Dive & Analysis

Read the user's request. Read relevant application source code to thoroughly understand the user-facing functionality, UI elements, and validation points that need to be tested.

Step 1A — Infer app identity (name, bundle ID, package name) from the repo

Inspect the code base files and infer them when possible. take decision on whether the repo of for android, ios or cross-platform. If you find multiple identifiers, propose the best candidate and ask the user to confirm which one is correct. If the repo structure makes it clear that different environments use different app identifiers, propose the inferred values for each env and ask the user to confirm.

  • Inference rules:

- If one identifier is clearly the repo default, write it to .finalrun/config.yaml. - If env-specific identifiers are clearly derivable, keep the default in .finalrun/config.yaml and put only the differing value in .finalrun/env/<env>.yaml. - Reuse existing env names from .finalrun/env/*.yaml before inventing new ones.

  • Guardrails:

- Do not treat Android namespace as the app package unless there is no better source. - Do not infer env names from every flavor automatically; free / paid are not the same as dev / staging / prod. - Do not silently overwrite an existing .finalrun/config.yaml app block. Show the proposed change first. - Ask the user only when multiple app modules/targets are plausible or the identifiers cannot be resolved confidently.

Step 2 — Environment profiles (required when tests use ${variables.*} or ${secrets.*}, or when app identity differs by environment)

  • Inspect: Read .finalrun/config.yaml and .finalrun/env/*.yaml if present so you reuse the existing app config and binding keys.
  • Scaffold: If the folder is missing or empty, create the env files the user needs (ask which names: dev, staging, prod, …) only when the tests need env-specific bindings or env-specific app overrides.
  • App setup:

- Ensure .finalrun/config.yaml has the default repo app identity. - Prefer repo-derived app identity over manual entry whenever the codebase makes it clear. - Ask whether the app identifier changes by environment only if the repo structure does not make that obvious. - If yes, add only the env-specific app override to .finalrun/env/<env>.yaml. - If no, keep the app identity only in .finalrun/config.yaml.

  • Declare bindings in YAML:

- Add variables.* for non-secret values used in tests. - Add secrets.* as "${ENV_VAR}" placeholders (choose stable ENV_VAR names; document which exports the user must set).

  • Which env files to update: Ask the user. Default recommendation: add the same keys to every .finalrun/env/*.yaml so all environments stay aligned unless they explicitly want a subset.
  • Allowed env file shapes: .finalrun/env/<env>.yaml may contain app, variables, secrets, or any combination of them.

Recommended generated config shapes:

Same package everywhere:

app:
  name: ExampleApp
  packageName: com.example.app
  bundleId: com.example.app

Different package by environment:

app:
  name: ExampleApp
  packageName: com.example.app
  bundleId: com.example.app
app:
  packageName: com.example.app.staging
  bundleId: com.example.app.staging

Step 3 — Planning & Folder Discovery

Before creating any test code, you must look into the existing test directories to avoid duplicates and adhere to feature-based grouping.

  1. Inspect the .finalrun/tests/ directory. Tests are grouped into sub-folders matching feature names (e.g., .finalrun/tests/<feature-name>/).
  2. Search for a feature folder relevant to the current request.

- If a relevant feature folder exists: Inspect the YAML files inside it. - If a relevant test already exists, plan an UPDATE to the existing file. - If a relevant test does not exist, plan to CREATE a new .yaml file inside this folder. - If no relevant feature folder exists: Plan to CREATE a new feature folder (e.g., .finalrun/tests/<new_feature_name>/). - If multiple feature folders appear potentially relevant: STOP. Ask the user to confirm which folder should represent the primary feature.

  1. Repeat a similar process for test suites under .finalrun/suites/. Suite files should match the feature folder conceptually, typically .finalrun/suites/<feature-name>.yaml. Update an existing suite to include the new test(s) or create a new suite if none exists.

Step 4 — Propose Plan & Review

Present the proposed testing modifications to the user for validation.

  • State explicitly if you are UPDATING or CREATING files.
  • List the exact target paths you intend to touch.
  • Detail the Setup & Idempotent Cleanup strategy (as described below) you intend to use.
  • Setup checklist: List every ${variables.*} and ${secrets.*} the tests will use, and confirm the matching entries you will add to .finalrun/env/*.yaml (secret rows as ${ENV_VAR} only).
  • Effective app checklist: State which app identifier FinalRun should use for each env/platform affected by the change.
  • Inference checklist: State which app identifiers were inferred from the repo, which files they came from, and whether any user confirmation is still needed.
[!CAUTION] Do NOT write final test/suite .yaml until the user explicitly approves the proposed plan and answers your questions.

Step 5 — Generate FinalRun artifacts

Once approved, generate or update tests and suites using strict FinalRun YAML syntax.

  • Variable and secret declarations: Whenever the tests reference ${variables.*} or ${secrets.*}, create or update the corresponding .finalrun/env/*.yaml files in the same change set (per user choice: all env files or a subset).

Step 6 — Validation

Source of truth: run finalrun check (with --suite or the right selectors and --env when multiple env files exist). That command validates the workspace, resolves bindings, and surfaces missing env vars or unknown keys.

  • Do not rely on ad-hoc greps alone for binding correctness; use finalrun check outcomes as the acceptance bar.
  • For the full verify-and-fix loop after edits, follow Next steps at the end of this skill.

Technical Specifications: Testing

Setup & Idempotent Cleanup Rule

[!IMPORTANT] EVERY Setup & Cleanup Flow MUST BE IDEMPOTENT. Before writing any setup steps, you must ensure the test can run successfully regardless of the prior state of the app. If a previous run changed data (added an item, enabled a setting), this setup flow MUST clean that up first.

Cleanup is NOT redundant. Even if the cleanup steps involve navigating to the same screens as the test flow, you MUST include them.

If the test validates...The Setup & Cleanup Flow MUST...
Adding an itemCheck if the item exists and Delete/Remove it first.
Deleting an itemCheck if the item exists and Add/Create it first if missing.
Enabling a toggleDisable the toggle first if it's already on.
Moving/ReorderingEnsure the list is in a known default state first.

Writing Good Test Flows

  • Be specific: Reference actual UI labels and recognizable controls (e.g. Settings screen, Settings button).
  • Name visible controls clearly: Use plain language like Save button and Home screen.
  • Variables: Use syntax like "Type ${variables.search_term} into the search field".
  • Idempotency is the priority: Assume the test has already run and failed once; the setup flow must fix it.

Strict YAML Formatting

  • Use exact 2-space indentation depth.
  • Quote string values if they contain special characters (e.g., :, #).
  • Use flat lists for lists only (no nested complex lists unless strictly required).
  • Do NOT wrap the file content inside markdown code fences when saving the file to disk. The file extension should be .yaml.

Test File Template (.finalrun/tests/<feature-name>/<file>.yaml)

Every test specification file must strictly follow this exact schema:

name: <snake_case_name>
description: <One or two sentences describing what the test validates.>
setup:
  - <string>
steps:
  - <string>
assertions:
  - <string>

Instruction Guidelines for the specific keys:

  • name: Short unique identifier.
  • description: High level summary of the user journey.
  • setup: Actionable steps to guarantee a clean starting state, honoring the Idempotency rule. Ensure you navigate and perform the cleanup visually if prior failure polluted the app state.
  • steps: Chronological list of user interactions. Name the target screen, button, field, or control directly in each step.
  • assertions: Specific boolean checks of UI labels, elements, or visibility to prove test passage.

Suite File Template (.finalrun/suites/<feature-name>.yaml)

Suites group test specs logically. If you define tests for a feature, there must be a suite encompassing them. Every suite file must strictly follow this exact schema:

name: <feature_suite_name>
description: <One or two sentences describes what the suite covers.>
tests:
  - .finalrun/tests/<feature-name>/<file>.yaml

Next steps

After creating or updating test specs, suite manifests, and (when needed) env files:

  1. Run finalrun check on the same scope you changed. Use --suite <path> under .finalrun/suites when validating a suite, or pass positional selectors (YAML paths, directories, or globs under .finalrun/tests/). Pass --env <name> when the workspace has multiple .finalrun/env/*.yaml files and the CLI requires a choice, or when validating a specific named profile.
  2. If finalrun check fails, treat the command output as the source of truth. Typical fixes: missing or mistyped **variables.* / secrets.* in .finalrun/env/<env>.yaml (one file per environment name, e.g. dev.yaml, not named after a shell variable), references in specs that do not match declared keys, or required secrets.*** values not exported in the shell/CI environment (placeholders in YAML must stay as "${SHELL_ENV_VAR}"; never commit plaintext secrets).
  3. Apply this skill’s rules when editing env files: follow Variables & secrets and Step 2 — Environment bindings (reuse keys, add placeholders for secrets, align keys across env files if the user wants consistency).
  4. Re-run finalrun check until it succeeds. If errors point at spec structure or paths, fix those YAML files and check again.

If finalrun is not on PATH, resolve the install or invoke it by absolute path before relying on check output.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.07%
按下载量换算32

Claude

30.44%
按下载量换算28

Cursor

20.04%
按下载量换算18

Gemini CLI

9.79%
按下载量换算9

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/final-run/finalrun-agent --skill generate-finalrun-test 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills