Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器github未标认证来源可访问许可证需确认审计提醒

detect-ux检测用户体验

Agent Skill

用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化。它适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素;涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出、对齐和响应式表现。

总安装

188

周安装

8

GitHub Stars

11

下载量

66
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/parhumm/jaan-to --skill detect-ux

简介

detect-ux 执行旅程地图与启发式评估,输出用户体验痛点。

  • 基于路由与组件分析,识别可用性问题与一致性偏差。
  • 输出 flat 文件覆盖写入,支持多框架感知扫描。
  • 需加载 tech.md 与模板文件,结果需人工复核优先级。
  • detect-ux 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

detect-ux

Repo-driven UX audit with journeys, pain-points, and heuristic-based findings.

Context Files

  • $JAAN_LEARN_DIR/jaan-to-detect-ux.learn.md - Past lessons (loaded in Pre-Execution)
  • $JAAN_CONTEXT_DIR/tech.md - Tech stack (for framework-aware route detection)
  • $JAAN_TEMPLATES_DIR/jaan-to-detect-ux.template.md - Output template
  • ${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md - Language resolution protocol

Output path: $JAAN_OUTPUTS_DIR/detect/ux/ — flat files, overwritten each run (no IDs).

Input

Arguments: $ARGUMENTS — parsed in Step 0.0. Repository path and mode determined there.


Pre-Execution Protocol

MANDATORY — Read and execute ALL steps in: ${CLAUDE_PLUGIN_ROOT}/docs/extending/pre-execution-protocol.md Skill name: detect-ux Execute: Step 0 (Init Guard) → A (Load Lessons) → B (Resolve Template) → C (Offer Template Seeding)

Language Settings

Read and apply language protocol: ${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md Override field for this skill: language_detect-ux


Standards Reference

Reference: See ${CLAUDE_PLUGIN_ROOT}/docs/extending/detect-shared-reference.md for Evidence Format (SARIF), Evidence ID Generation, Confidence Levels, Frontmatter Schema, Platform Detection, Document Structure, and Codebase Content Safety.

This skill's namespace: E-UX-* (e.g., E-UX-001, E-UX-WEB-001) Tool name in frontmatter: detect-ux


PHASE 1: Detection (Read-Only)

Step 0.0: Parse Arguments

Arguments: $ARGUMENTS

ArgumentEffect
(none)Light mode (default): Route mapping + user flows, single summary file
[repo]Scan specified repo (applies to both modes)
--fullFull mode: All detection steps, 7 output files (current behavior)

Mode determination:

  • If $ARGUMENTS contains --full as a standalone token → set run_depth = "full"
  • Otherwise → set run_depth = "light"

Strip --full token from arguments. Set repo_path to remaining arguments (or current working directory if empty).

Thinking Mode

If run_depth == "full": ultrathink If run_depth == "light": megathink

Use extended reasoning for:

  • Route/screen mapping from framework-specific patterns
  • Journey flow construction from navigation patterns
  • Nielsen heuristic assessment from code signals
  • Pain-point inference from error handling patterns

Step 0: Detect Platforms

Purpose: Auto-detect platform structure and check for UI/TUI presence before UX analysis.

Use Glob and Bash to identify platform folders (same patterns as detect-dev - see detect-dev Step 0 for full platform patterns and disambiguation rules).

Platform Detection

  1. Check for monorepo markers: pnpm-workspace.yaml, lerna.json, nx.json, turbo.json
  2. List top-level directories: Exclude node_modules, .git, build outputs
  3. Match against platform patterns: Apply disambiguation rules
  4. Handle detection results:

- No platforms → Single-platform: platforms = [{name: 'all', path: '.'}] - Platforms detected → Multi-platform: Ask user to select all or specific platforms

UI/TUI Presence Check (UX Audit Applicability)

For each platform, check for UI or TUI (terminal UI) indicators:

# Check for UI component files
ui_files=$(find {platform.path} -type f \( -name "*.jsx" -o -name "*.tsx" -o -name "*.vue" -o -name "*.svelte" \) 2>/dev/null | head -n 1)

# Check for TUI libraries (blessed, ink, bubbletea, etc.)
tui_detected=$(grep -r "blessed\|ink\|bubbletea\|charm" {platform.path}/package.json {platform.path}/go.mod 2>/dev/null)

if [ -z "$ui_files" ] && [ -z "$tui_detected" ]; then
  # No UI/TUI files detected - UX analysis not applicable
  platform_has_ui = false
else
  platform_has_ui = true
fi

Platform applicability:

Platform TypeUX ExpectedIf No UI/TUI Found
web, mobile, androidtv, ios, android, desktopYesReport as finding (unexpected)
backend, api, servicesConditionalReport "Not Applicable" (expected, unless admin UI detected)
cli, cmdConditionalFull analysis if TUI detected, otherwise "Not Applicable"

Analysis Loop

For each platform in platforms:

  1. Set current_platform = platform.name
  2. Set base_path = platform.path
  3. Check UI/TUI presence using the check above
  4. If platform_has_ui == false and platform is backend/cli:

- Skip Steps 1-7 (detection steps) - Go directly to Step 8 with "Not Applicable" findings

  1. If platform_has_ui == true or platform is expected to have UI:

- Run detection steps per run_depth: - If run_depth == "full": Run Steps 1-7 scoped to base_path - If run_depth == "light": Run Steps 1 and 4 only scoped to base_path (skip Steps 2, 3, 5, 6, 7)

  1. Use platform-specific output paths in Step 9

"Not Applicable" Findings Structure:

When a platform has no UI/TUI and UX analysis is not applicable, create minimal output files with this finding:

---
findings_summary:
  critical: 0
  high: 0
  medium: 0
  low: 0
  informational: 1
overall_score: 10.0  # Perfect score (nothing to assess)
---

## Executive Summary

No UI/TUI detected for platform '{platform}'. UX audit (route mapping, user flows, heuristic assessment) is not applicable to this platform type.

## Findings

### E-UX-{PLATFORM}-001: No UI/TUI Detected

**Severity**: Informational
**Confidence**: Confirmed (1.0)

**Description**: Platform '{platform}' does not contain UI components (.jsx, .tsx, .vue, .svelte) or TUI libraries. UX analysis (journeys, personas, heuristics, accessibility) is not applicable to this platform type.

**Evidence**:

evidence: id: E-UX-{PLATFORM}-001 type: absence confidence: 1.0 method: glob-pattern-match description: "No UI/TUI files found in {platform.path}"

Note: If single-platform mode (platform.name == 'all'), output paths have NO suffix. If multi-platform mode, output paths include -{platform} suffix.

Precedence: N/A handling (platform_has_ui checks) always takes priority over run_depth gates. If platform_has_ui == false, skip ALL detection steps regardless of run_depth.

Step 1: Route / Screen Mapping

Detect framework and extract routes:

Framework-Specific Route Extraction

React Router:

  • Grep: useRoutes(, <Route, <Outlet, createBrowserRouter
  • Extract: path, element/component, nested routes, layout routes

Next.js:

  • Glob: app/**/page.{tsx,jsx,ts,js} — app router pages
  • Glob: pages/**/*.{tsx,jsx,ts,js} — pages router
  • Detect dynamic routes: [slug], [...catchAll], [[...optional]]
  • Detect route groups: (group)/
  • Detect layouts: layout.{tsx,jsx}

Vue Router:

  • Grep: routes array definitions, <RouterView, <router-view
  • Glob: **/router/**/*.{ts,js} — router config files

Angular:

  • Glob: **/*routing.module.ts, **/*-routes.ts
  • Grep: canActivate, canDeactivate guards
  • Extract: path, component, guards, lazy-loaded modules

Express / API backends:

  • Grep: app.get(, app.post(, app.put(, app.delete(
  • Grep: router.get(, router.post(, router.put(
  • Grep: @Get(, @Post( — NestJS decorators

Screen Inventory

For each route/page, extract:

  • Route path and name
  • Component file location
  • Auth requirement (guards, middleware, redirect patterns)
  • Layout parent
  • Query parameters / dynamic segments

If run_depth == "light": Skip Steps 2-3. Proceed to Step 4 (Map User Flows).

Step 2: Infer User Personas

From route structure and component analysis, infer personas:

  • Authenticated vs unauthenticated routes -> at least 2 persona types
  • Admin/dashboard routes -> admin/power user persona
  • Onboarding flows -> new user persona
  • API-only routes -> developer/integrator persona
  • Settings/profile routes -> returning user persona

Mark all personas as Tentative confidence — these are inferred from code structure, not validated user research.

Step 3: Infer Jobs-to-be-Done (JTBD)

From features and flows detected:

  • Group related routes into functional areas (auth, billing, content, settings)
  • For each area, construct JTBD statement: "When {situation}, I want to {motivation}, so I can {expected outcome}"
  • Link to route evidence

Mark all JTBD as Tentative — inferred from code, not user research.

Step 4: Map User Flows

Trace navigation paths through the application:

  • Detect navigation components: <Link, <NavLink, useNavigate, router.push
  • Map which pages link to which other pages
  • Identify entry points (landing, login, deep links)
  • Identify exit points (logout, external links)
  • Detect multi-step flows (wizards, checkout, onboarding)

For multi-step flows, construct Mermaid flow diagrams:

graph LR
    A[Cart] --> B[Shipping] --> C[Payment] --> D[Confirmation]

If run_depth == "light": Skip Steps 5-7. Proceed directly to Step 8 (Present Detection Summary).

Step 5: Detect Pain Points

Scan for UX friction signals:

Error Handling Patterns

  • Grep: <ErrorBoundary, ErrorFallback, errorElement
  • Check for error states in forms: validation messages, inline errors
  • Look for generic error pages vs contextual error handling
  • Detect retry patterns: retry, refetch, onError

Loading Patterns

  • Grep: isLoading, isPending, <Skeleton, <Spinner, <Suspense
  • Check for loading states on data-fetching pages
  • Detect missing loading states (data fetch without loading indicator)

Form Complexity

  • Count form fields per form component
  • Detect multi-step forms vs single-page forms
  • Check for form validation: validate, yup, zod, formik
  • Look for autosave patterns

Dead Ends

  • Routes without navigation back
  • Error states without recovery actions
  • Empty states without CTAs

Step 6: Nielsen's 10 Heuristics Assessment

Evaluate each heuristic from code evidence:

#HeuristicCode Signals to Scan
1Visibility of system statusisLoading, <Skeleton>, <Spinner>, <Progress>, status messages, optimistic updates
2Match between system and real worldDomain terminology consistency in component names, labels, and copy
3User control and freedomUndo patterns, cancel buttons, back navigation, useNavigate(-1), confirmation dialogs
4Consistency and standardsComponent naming conventions, prop patterns, shared UI components, design token usage
5Error prevention<ConfirmDialog>, validate(), type constraints, disabled states, maxLength
6Recognition rather than recallNavigation labels, breadcrumbs, search, autocomplete, recent items, <Select> vs text input
7Flexibility and efficiencyKeyboard shortcuts, customization options, bulk actions, saved preferences
8Aesthetic and minimalist designComponent complexity (prop count, nesting depth), information density per page
9Error recoveryError messages with solutions, retry buttons, "try again" patterns, support links
10Help and documentation<Tooltip>, <HelpText>, documentation links, ? icons, help pages, FAQ routes

For each heuristic:

  • Scan for positive signals (good practices found)
  • Scan for negative signals (violations found)
  • Rate: Strong / Adequate / Weak / Unknown
  • Cite evidence for each rating

Important: Missing code evidence does NOT equal a violation. Mark as "Unknown" when evidence is insufficient.

Step 7: Accessibility Assessment (Repo-Scoped)

Scope: Code-level only. Cannot make runtime behavior claims.

  • Grep: ARIA attributes (aria-label, aria-describedby, aria-live, role=)
  • Check semantic HTML usage
  • Detect keyboard navigation patterns: onKeyDown, tabIndex, focus management
  • Look for skip links: #main-content, skipToContent
  • Check for a11y testing: jest-axe, @axe-core, cypress-axe, pa11y
  • Check for reduced motion: prefers-reduced-motion

Mark findings as "Unknown" for runtime behavior that can't be verified from code.


HARD STOP — Detection Summary & User Approval

Step 8: Present Detection Summary

If run_depth == "light":

UX DETECTION COMPLETE (Light Mode)
-------------------------------------

PLATFORM: {platform_name or 'all'}
UI/TUI PRESENCE: {Yes/No} {if No, show "(Not Applicable)"}

ROUTES/SCREENS: {n} routes mapped
USER FLOWS: {n} flows mapped

SEVERITY SUMMARY
  Critical: {n}  |  High: {n}  |  Medium: {n}  |  Low: {n}  |  Info: {n}

OVERALL SCORE: {score}/10

OUTPUT FILE (1):
  $JAAN_OUTPUTS_DIR/detect/ux/summary{-platform}.md

Note: Run with --full for persona inference, JTBD mapping, pain point detection,
Nielsen heuristic assessment, and accessibility audit (7 output files).
"Proceed with writing summary to $JAAN_OUTPUTS_DIR/detect/ux/? [y/n]"

If run_depth == "full":

UX DETECTION COMPLETE
----------------------

PLATFORM: {platform_name or 'all'}
UI/TUI PRESENCE: {Yes/No} {if No, show "(Not Applicable)"}

ROUTES/SCREENS: {n} routes mapped
PERSONAS (inferred): {n} personas
JTBD (inferred): {n} jobs-to-be-done
USER FLOWS: {n} flows mapped

NIELSEN HEURISTICS
  Strong:   {n}/10
  Adequate: {n}/10
  Weak:     {n}/10
  Unknown:  {n}/10

PAIN POINTS: {n} detected
ACCESSIBILITY: {n} findings (repo-scoped)
UX GAPS: {n} identified

SEVERITY SUMMARY
  Critical: {n}  |  High: {n}  |  Medium: {n}  |  Low: {n}  |  Info: {n}

OVERALL SCORE: {score}/10

OUTPUT FILES (7):
  $JAAN_OUTPUTS_DIR/detect/ux/personas{-platform}.md       - Inferred personas
  $JAAN_OUTPUTS_DIR/detect/ux/jtbd{-platform}.md           - Jobs-to-be-done
  $JAAN_OUTPUTS_DIR/detect/ux/flows{-platform}.md          - User flows with diagrams
  $JAAN_OUTPUTS_DIR/detect/ux/pain-points{-platform}.md    - UX friction and pain points
  $JAAN_OUTPUTS_DIR/detect/ux/heuristics{-platform}.md     - Nielsen 10 heuristics assessment
  $JAAN_OUTPUTS_DIR/detect/ux/accessibility{-platform}.md  - A11y findings (repo-scoped)
  $JAAN_OUTPUTS_DIR/detect/ux/gaps{-platform}.md           - UX gaps and recommendations

Note: {-platform} suffix only if multi-platform mode (e.g., -web, -mobile). Single-platform mode has no suffix.
      If UI/TUI presence = No, files contain "Not Applicable" findings.
"Proceed with writing 7 output files to $JAAN_OUTPUTS_DIR/detect/ux/? [y/n]"

Do NOT proceed to Phase 2 without explicit approval.


PHASE 2: Write Output Files

Step 9: Write to $JAAN_OUTPUTS_DIR/detect/ux/

Create directory $JAAN_OUTPUTS_DIR/detect/ux/ if it does not exist.

Reference: See ${CLAUDE_PLUGIN_ROOT}/docs/extending/detect-shared-reference.md sections "Output Path Logic" and "Stale File Cleanup" for platform-specific suffix convention and run_depth cleanup rules.

If run_depth == "light": Write Single Summary File

Write one file: $JAAN_OUTPUTS_DIR/detect/ux/summary{suffix}.md

Contents:

  1. Universal YAML frontmatter with platform field, findings_summary, and overall_score
  2. Executive Summary — BLUF of UX findings
  3. Screen Inventory — routes/screens mapped with auth classification (from Step 1)
  4. Key User Flows — top flows as Mermaid diagrams (from Step 4)
  5. Top Findings — up to 5 highest-severity findings with evidence blocks
  6. "Run with --full for persona inference, JTBD mapping, pain point detection, Nielsen heuristic assessment, and accessibility audit (7 output files)."

If run_depth == "full": Write 7 Output Files

Write 7 output files:

FileContent
$JAAN_OUTPUTS_DIR/detect/ux/personas{suffix}.mdInferred personas from route/auth analysis
$JAAN_OUTPUTS_DIR/detect/ux/jtbd{suffix}.mdJobs-to-be-done statements linked to features
$JAAN_OUTPUTS_DIR/detect/ux/flows{suffix}.mdUser flows with Mermaid diagrams
$JAAN_OUTPUTS_DIR/detect/ux/pain-points{suffix}.mdUX friction signals and dead ends
$JAAN_OUTPUTS_DIR/detect/ux/heuristics{suffix}.mdNielsen 10 heuristics assessment table
$JAAN_OUTPUTS_DIR/detect/ux/accessibility{suffix}.mdA11y findings (scoped to repo evidence)
$JAAN_OUTPUTS_DIR/detect/ux/gaps{suffix}.mdUX gaps and improvement recommendations

Note: {suffix} is empty for single-platform mode, or -{platform} for multi-platform mode.

If UI/TUI presence = No (from Step 0 check), write minimal "Not Applicable" files with:

  • Frontmatter: findings_summary.informational: 1, overall_score: 10.0
  • Single finding: "E-UX-{PLATFORM}-001: No UI/TUI Detected" (severity: informational)

Each file MUST include:

  1. Universal YAML frontmatter with platform field and findings_summary/overall_score
  2. Executive Summary
  3. Scope and Methodology
  4. Findings with evidence blocks (using E-UX-{PLATFORM}-NNN or E-UX-NNN IDs)
  5. Recommendations

Step 9a: Seed Reconciliation

Reference: See ${CLAUDE_PLUGIN_ROOT}/docs/extending/seed-reconciliation-reference.md for comparison rules, discrepancy format, and auto-update protocol.
  1. Read domain-relevant seed files: $JAAN_CONTEXT_DIR/tone-of-voice.template.md
  2. Compare detection results against seed content (UX tone patterns, error message guidelines, empty state copy)
  3. If discrepancies found:

- Display discrepancy table to user - Offer auto-updates for non-destructive changes: [y/n] - Suggest /jaan-to:learn-add commands for patterns worth documenting

  1. If no discrepancies: display "Seed files are aligned with detection results."

Step 10: Capture Feedback

"Any feedback on the UX audit? [y/n]"

If yes:

  • Run /jaan-to:learn-add detect-ux "{feedback}"

Skill Alignment

  • Two-phase workflow with HARD STOP for human approval
  • Evidence-based findings with confidence scoring
  • Fork-isolated execution (context: fork)
  • Output to standardized $JAAN_OUTPUTS_DIR path

Definition of Done

If run_depth == "light":

  • Single summary file written to $JAAN_OUTPUTS_DIR/detect/ux/summary{suffix}.md
  • Universal YAML frontmatter with overall_score
  • Screen inventory and user flows included with evidence blocks
  • "--full" upsell note included
  • User approved output

If run_depth == "full":

  • All 7 output files written to $JAAN_OUTPUTS_DIR/detect/ux/
  • Universal YAML frontmatter with platform field in every file
  • Every finding has evidence block with correct ID format (E-UX-NNN for single-platform, E-UX-{PLATFORM}-NNN for multi-platform)
  • Routes/screens mapped from framework-specific patterns
  • Personas and JTBD marked as Tentative (inferred)
  • Nielsen heuristics assessed with code evidence
  • Accessibility findings scoped to repo (no runtime claims)
  • Mermaid flow diagrams for multi-step flows
  • Confidence scores assigned to all findings
  • Output filenames match platform suffix convention (no suffix for single-platform, -{platform} suffix for multi-platform)
  • If no UI/TUI detected for platform, minimal "Not Applicable" files created with informational findings
  • User approved output
  • Seed reconciliation check performed (discrepancies reported or alignment confirmed)

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

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

平台分布

Codex

36.12%
按下载量换算24

Claude

29.75%
按下载量换算20

Cursor

18.25%
按下载量换算12

Gemini CLI

10.77%
按下载量换算7

安全审计

Gen Agent Trust Hub

可疑

Socket

可疑

Snyk

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

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

来源信息

继续浏览同类 Skills