Token导航 LogoToken导航

Agent Skill · 前端设计

visual-regression(视觉回归)

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

visual-regression 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证为 MIT,第三方扫描已通过,按安装量在前端设计类的 10,216 个 Skill 里排第 9,692。

总安装 196周安装 8GitHub Stars 161下载 63核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

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

请帮我安装这个 Agent Skill:visual-regression(视觉回归)
来源仓库:https://github.com/alekspetrov/navigator
仓库路径:skills/visual-regression
安装命令:
npx skills add https://github.com/alekspetrov/navigator --skill visual-regression
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/alekspetrov/navigator --skill visual-regression

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。适合生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构或定位布局问题。使用时需结合项目现有设计系统、路由和构建方式,避免生成孤立片段;涉及页面改动时应配合本地预览确认效果。

安装命令:npx skills add https://github.com/alekspetrov/navigator --skill visual-regression 注意:涉及真实页面改动时,应通过本地预览和构建检查确认视觉效果。

来源仓库内路径:skills/visual-regression

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/alekspetrov/navigator --skill visual-regressio…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

visual-regression 怎么安装?

在终端执行 npx skills add https://github.com/alekspetrov/navigator --skill visual-regression。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

visual-regression 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

visual-regression 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

visual-regression 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

visual-regression 用的人多吗?

公开数据是累计安装 196 次,近一周安装 8 次,下载 63 次,GitHub 161 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

visual-regression 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 3 个目录同时收录,说明这个 Skill 流传比较广。
  • 许可证明确为 MIT,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
visual-regression

视觉回归 · 本页

196161需要联网MIT通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Visual Regression Testing Setup Skill


Skill Purpose

Generate complete visual regression testing setup with Storybook stories, configuration files, and CI/CD workflows.

Supports: Chromatic, Percy, BackstopJS Frameworks: React, Vue, Svelte (TypeScript/JavaScript) CI/CD: GitHub Actions, GitLab CI, CircleCI


What This Skill Does

  1. Detects existing setup: Storybook version, VR tool, CI platform
  2. Validates component: Extract props, variants, states
  3. Generates stories: Complete .stories.tsx with all variants
  4. Creates config files: Chromatic, Percy, or BackstopJS configuration
  5. Sets up CI/CD: Auto-generate workflow files
  6. Provides instructions: Next steps for API tokens, first baseline

Workflow

Step 1: Validate Project Setup

Execute: vr_setup_validator.py

Check:

  • Framework (React/Vue/Svelte) from package.json
  • Existing Storybook config (.storybook/ directory)
  • Existing VR tool (chromatic, percy, backstopjs in dependencies)
  • CI platform (.github/,.gitlab-ci.yml,.circleci/)
  • Component file exists and is valid

Output:

{
  "framework": "react",
  "storybook_version": "7.6.0",
  "vr_tool": "chromatic",
  "ci_platform": "github",
  "component": {
    "path": "src/components/ProfileCard.tsx",
    "name": "ProfileCard",
    "props": [...],
    "valid": true
  },
  "dependencies": {
    "installed": ["@storybook/react", "@storybook/addon-essentials"],
    "missing": ["chromatic", "@chromatic-com/storybook"]
  }
}

If Storybook not found: Ask user if they want to install Storybook first, provide setup instructions.

If multiple VR tools found: Ask user which to use (Chromatic recommended).


Step 2: Generate Storybook Stories

Execute: story_generator.py

Process:

  1. Parse component file (TypeScript/JSX/Vue SFC)
  2. Extract props, prop types, default values
  3. Identify variants (size, variant, disabled, etc.)
  4. Generate story file from template
  5. Add accessibility tests (@storybook/addon-a11y)
  6. Add interaction tests (if @storybook/test available)

Template: templates/story-template.tsx.j2

Example output (ProfileCard.stories.tsx):

import type { Meta, StoryObj } from '@storybook/react';
import { ProfileCard } from './ProfileCard';

const meta = {
  title: 'Components/ProfileCard',
  component: ProfileCard,
  parameters: {
    layout: 'centered',
  },
  tags: ['autodocs'],
  argTypes: {
    size: { control: 'select', options: ['sm', 'md', 'lg'] },
    variant: { control: 'select', options: ['default', 'compact'] },
  },
} satisfies Meta<typeof ProfileCard>;

export default meta;
type Story = StoryObj<typeof meta>;

export const Default: Story = {
  args: {
    name: 'John Doe',
    avatar: 'https://example.com/avatar.jpg',
    bio: 'Software Engineer',
    size: 'md',
    variant: 'default',
  },
};

export const Small: Story = {
  args: {
    ...Default.args,
    size: 'sm',
  },
};

export const Large: Story = {
  args: {
    ...Default.args,
    size: 'lg',
  },
};

export const Compact: Story = {
  args: {
    ...Default.args,
    variant: 'compact',
  },
};

// Accessibility test
Default.parameters = {
  a11y: {
    config: {
      rules: [
        { id: 'color-contrast', enabled: true },
        { id: 'label', enabled: true },
      ],
    },
  },
};

Write to: {component_directory}/{ComponentName}.stories.tsx


Step 3: Generate Configuration Files

Execute: chromatic_config_generator.py (or percy/backstop equivalent)

For Chromatic:

Generate 3 files:

  1. chromatic.config.json:
{
  "projectId": "<PROJECT_ID_PLACEHOLDER>",
  "buildScriptName": "build-storybook",
  "exitZeroOnChanges": true,
  "exitOnceUploaded": true,
  "onlyChanged": true,
  "externals": ["public/**"],
  "skip": "dependabot/**",
  "ignoreLastBuildOnBranch": "main"
}
  1. Update.storybook/main.js (add addon):
module.exports = {
  stories: ['../src/**/*.stories.@(js|jsx|ts|tsx)'],
  addons: [
    '@storybook/addon-links',
    '@storybook/addon-essentials',
    '@chromatic-com/storybook', // ← Added
    '@storybook/addon-interactions',
  ],
  framework: {
    name: '@storybook/react-vite',
    options: {},
  },
};
  1. Update package.json (add scripts):
{
  "scripts": {
    "chromatic": "npx chromatic",
    "chromatic:ci": "npx chromatic --exit-zero-on-changes"
  }
}

For Percy: Generate .percy.yml instead For BackstopJS: Generate backstop.config.js instead


Step 4: Generate CI/CD Workflow

Execute: ci_workflow_generator.py

Detect CI platform from existing files:

  • .github/workflows/ → GitHub Actions
  • .gitlab-ci.yml → GitLab CI
  • .circleci/config.yml → CircleCI
  • None → Ask user, default to GitHub Actions
GitHub Actions Example:

Generate: .github/workflows/chromatic.yml

name: Visual Regression Tests

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  chromatic:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0 # Required for Chromatic

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Run Chromatic
        uses: chromaui/action@latest
        with:
          projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
          exitZeroOnChanges: true
          onlyChanged: true

For GitLab CI: Add job to .gitlab-ci.yml For CircleCI: Add job to .circleci/config.yml


Step 5: Provide Setup Instructions

Output to user:

✅ Visual regression testing setup complete!

## Files Created/Modified

✅ {ComponentName}.stories.tsx (Storybook story with variants)
✅ chromatic.config.json (Chromatic configuration)
✅ .storybook/main.js (Added @chromatic-com/storybook addon)
✅ package.json (Added chromatic scripts)
✅ .github/workflows/chromatic.yml (CI workflow)

## Next Steps

### 1. Install Dependencies

npm install --save-dev chromatic @chromatic-com/storybook


### 2. Create Chromatic Project

1. Go to https://www.chromatic.com/start
2. Sign in with GitHub
3. Create new project
4. Copy project token

### 3. Add Secret to GitHub

1. Go to repository Settings → Secrets and variables → Actions
2. Create secret: `CHROMATIC_PROJECT_TOKEN`
3. Paste your project token

### 4. Update chromatic.config.json

Replace `<PROJECT_ID_PLACEHOLDER>` with your actual project ID from Chromatic dashboard.

### 5. Create Baseline

npm run chromatic


This captures the initial screenshots as your baseline.

### 6. Test Visual Regression

1. Make a visual change to ProfileCard
2. Commit and push
3. CI will run Chromatic automatically
4. Review changes in Chromatic dashboard

## Documentation

See `.agent/sops/testing/visual-regression-setup.md` for detailed workflow.

## Troubleshooting

**Storybook build fails**: Ensure all component dependencies are installed
**Chromatic upload fails**: Check project token in secrets
**No changes detected**: Chromatic only runs on changed stories (use `--force-rebuild` to test)

Predefined Functions Reference

vr_setup_validator.py

def detect_storybook_config(project_root: str) -> dict
def detect_vr_tool(project_root: str) -> str
def validate_component_path(component_path: str) -> dict
def check_dependencies(project_root: str) -> dict

Returns: Validation report with detected setup and missing dependencies

story_generator.py

def analyze_component(component_path: str, framework: str) -> dict
def generate_story(component_info: dict, template_path: str) -> str
def create_accessibility_tests(component_info: dict) -> str
def create_interaction_tests(component_info: dict) -> str

Returns: Generated story file content

chromatic_config_generator.py

def generate_chromatic_config(project_info: dict) -> str
def generate_storybook_config(existing_config: dict) -> str
def generate_package_scripts(existing_scripts: dict) -> dict
def generate_percy_config(project_info: dict) -> str  # Percy alternative
def generate_backstop_config(project_info: dict) -> str  # BackstopJS alternative

Returns: Configuration file contents as strings

ci_workflow_generator.py

def detect_ci_platform(project_root: str) -> str
def generate_github_workflow(project_info: dict) -> str
def generate_gitlab_ci(project_info: dict) -> str
def generate_circleci_config(project_info: dict) -> str

Returns: CI workflow file contents


Templates Reference

  • story-template.tsx.j2: React/TypeScript story template
  • story-template.vue.j2: Vue SFC story template
  • chromatic-config.json.j2: Chromatic configuration
  • percy-config.yml.j2: Percy configuration
  • github-workflow.yml.j2: GitHub Actions workflow
  • gitlab-ci.yml.j2: GitLab CI job
  • storybook-main.js.j2: Storybook addon configuration

Examples

Example 1: Simple Component

User: "Set up visual regression for ProfileCard component"

→ Detects: React, existing Storybook, no VR tool
→ Generates: ProfileCard.stories.tsx with 4 variants
→ Creates: Chromatic config, GitHub workflow
→ Outputs: Setup instructions

See: examples/simple-component-vr.md

Example 2: Full Design System

User: "Set up visual regression for entire design system"

→ Detects: React, Storybook, components in src/components/
→ Generates: Stories for all components (Button, Input, Card, etc.)
→ Creates: Chromatic config with design token validation
→ Outputs: Bulk setup instructions

See: examples/design-system-vr.md

Example 3: Existing Storybook

User: "Add Chromatic to existing Storybook"

→ Detects: Storybook v7, existing stories
→ Adds: @chromatic-com/storybook addon
→ Creates: Chromatic config, CI workflow
→ Preserves: Existing stories and configuration

See: examples/existing-storybook-vr.md


Integration with product-design Skill

After product-design generates implementation plan, suggest visual regression:

"Implementation plan created! Consider setting up visual regression testing:

  'Set up visual regression for {ComponentName}'

This ensures pixel-perfect implementation and prevents visual drift."

Tool Comparison

Chromatic (Recommended)

  • ✅ Purpose-built for Storybook
  • ✅ Component-focused testing
  • ✅ UI review workflow
  • ✅ Free tier: 5,000 snapshots/month
  • ❌ Requires cloud service

Percy

  • ✅ Multi-framework support
  • ✅ Responsive testing
  • ✅ Visual reviews
  • ❌ More expensive
  • ❌ Less Storybook-specific

BackstopJS

  • ✅ Open source, self-hosted
  • ✅ No cloud dependency
  • ✅ Free
  • ❌ More manual setup
  • ❌ Less automation

Default: Chromatic (best Storybook integration)


Error Handling

Component Not Found

Error: Component file not found at {path}

Please provide correct path:
  "Set up visual regression for src/components/ProfileCard.tsx"

Storybook Not Installed

Storybook not detected. Install first:

  npm install --save-dev @storybook/react @storybook/addon-essentials
  npx storybook init

Then retry: "Set up visual regression for ProfileCard"

Multiple VR Tools Detected

Multiple VR tools found: chromatic, percy

Which should I use?
  - "Use Chromatic for visual regression"
  - "Use Percy for visual regression"

Best Practices

  1. Start with key components: Don't test everything, focus on design system primitives
  2. Use interaction tests: Combine visual + functional testing
  3. Baseline on main: Always merge baselines to main branch
  4. Review changes: Don't auto-accept visual changes
  5. Test states: Capture hover, focus, error states
  6. Accessibility: Include a11y tests in all stories

Token Efficiency

Traditional approach (50k tokens):

  1. Read Storybook docs (20k)
  2. Read Chromatic docs (15k)
  3. Write stories manually (10k)
  4. Configure CI (5k)

With visual-regression skill (3k tokens):

  1. Skill auto-invokes (0 tokens)
  2. Instructions load (3k tokens)
  3. Functions execute (0 tokens)

Savings: 94% (47k tokens)


Version History

  • v3.3.0: Initial release with Chromatic support
  • Future: Percy, BackstopJS, Vue, Svelte support

Last Updated: 2025-10-21 Skill Type: Project-specific Generator: nav-skill-creator (self-improving)

平台分布

OpenCode

31.07%
按下载量换算20

Antigravity

22.82%
按下载量换算14

Gemini CLI

17.47%
按下载量换算11

kilo

14.1%
按下载量换算9

windsurf

8.75%
按下载量换算6

amp

3.35%
按下载量换算2

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

继续浏览同类 Skills