Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计提醒

resilience-review复原力审查

Agent Skill

resilience-review 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,212

周安装

50

GitHub Stars

公开资料未说明

下载量

396
CodexClaudeCursorGemini CLI

安装说明

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

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

skills.shnpx skills
npx skills add https://github.com/shiplightai/agent-skills --skill resilience-review

简介

用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词或任务场景快速定位候选结果。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装,需确认权限与联网能力。
  • 建议结合原始 README 核验具体用法,注意维护状态和功能边界。
  • 使用前请检查是否会触发文件读写或命令执行,确保环境安全。

SKILL.md

Resilience Review

Evaluate how your application behaves when things go wrong — network failures, API errors, slow connections, missing data, and edge cases. Most apps are built for the happy path; this review systematically tests the unhappy paths that real users encounter.

When to use

Use /resilience-review when:

  • Before launching a user-facing feature
  • After adding new API integrations or data sources
  • When reliability is critical (healthcare, finance, e-commerce checkout)
  • After production incidents caused by unhandled errors
  • When moving from prototype to production quality

Standards Referenced

  • Google SRE Principles — Error budgets, graceful degradation
  • Netflix Chaos Engineering Principles — Verify steady state, inject real-world failures
  • OWASP Error Handling — Secure and user-friendly error responses
  • Nielsen Norman Group — Error message usability heuristics

Phase Overview

Phase 1: EDUCATE   → Why resilience matters and what we test
Phase 2: SCOPE     → Map failure points, dependencies, critical flows
Phase 3: ANALYZE   → Browser-based fault injection and edge case testing
Phase 4: REPORT    → Findings with evidence and user impact assessment
Phase 5: REMEDIATE → Fix guidance + YAML regression tests

Phase 1: Educate

Why this matters: Users don't experience your app in ideal conditions. 53% of mobile visits are abandoned if a page takes >3 seconds. Error pages with no guidance increase support tickets 5x. A blank screen is the worst possible failure mode — it tells the user nothing and offers no recovery path. Resilient apps maintain trust even when backend systems fail.

This review simulates real-world failure conditions in the browser and evaluates how your UI responds.


Phase 2: Scope

Gather context

  1. Auto-detect from codebase:

- API calls and their endpoints - Error boundary components (React ErrorBoundary, Vue errorHandler) - Loading state implementations (spinners, skeletons, suspense) - Empty state components - Retry logic / error recovery patterns - Offline support (service workers, cache strategies) - Third-party service dependencies

  1. Ask the user (one at a time):

- Target URL: Where is the app running? - Critical user flows: Which flows must never show a blank screen? (auto-detect from routes) - Key API dependencies: Which APIs does the frontend depend on? (auto-detected) - Known fragile areas: Any pages/features that break frequently? (optional)

  1. Map failure points:

- API endpoints the frontend calls (and what happens if each fails) - Third-party dependencies (CDN, auth provider, analytics, maps, payment) - Data-dependent UI (what shows when data is empty, missing, or malformed) - User input edge cases (long text, special characters, empty submissions)


Phase 3: Analyze

Open a browser session with new_session using record_evidence: true. Run all applicable check categories.

Category A: Error Handling (ERR)

Check IDCheckStandardMethod
ERR-01API errors show user-friendly message (not blank screen)UX best practiceMock API to return 500, check UI response
ERR-02Network timeout shows appropriate stateUX best practiceMock network delay (30s), check UI
ERR-03404 page exists and is helpfulUX best practiceNavigate to non-existent route
ERR-04JavaScript errors don't crash the pageError boundariesInject JS error, check if page recovers
ERR-05Error messages are actionableNN/g heuristicsCheck error messages for: what happened, why, what to do
ERR-06Errors don't expose technical detailsOWASPCheck error messages for stack traces, SQL, internal paths
ERR-07Form validation errors are clear and positionedUX best practiceSubmit invalid forms, check error placement and text
ERR-08Error states allow retry without page refreshUX best practiceAfter error, check for retry button or recovery action
ERR-09Concurrent error handling (multiple simultaneous failures)ResilienceMock multiple API failures, check UI doesn't cascade
ERR-10Error logging doesn't expose PIIOWASP / PrivacyCheck get_browser_console_logs during errors

Browser validation: Use CODE blocks to intercept network requests via page.route() to simulate failures. Check UI state after each failure. Use get_browser_console_logs for JavaScript errors.

// Example: Mock API 500 error
await page.route('**/api/**', route => {
  route.fulfill({ status: 500, body: JSON.stringify({ error: 'Internal Server Error' }) });
});

Category B: Graceful Degradation (DEG)

Check IDCheckStandardMethod
DEG-01Page works with JavaScript disabled (basic content)Progressive enhancementDisable JS, check if content is accessible
DEG-02Page works on slow connection (3G simulation)PerformanceThrottle to Slow 3G, check load behavior
DEG-03Non-critical features degrade without breaking critical onesGraceful degradationDisable third-party scripts, check core functionality
DEG-04Offline state is handled (if applicable)PWA best practiceGo offline, check UI state and messaging
DEG-05Third-party service failure doesn't block page loadResilienceBlock third-party domains, check page loads
DEG-06Image loading failure shows fallbackUX best practiceBlock image URLs, check for alt text/placeholder
DEG-07Font loading failure doesn't hide textFOUT handlingBlock font URLs, check text remains visible
DEG-08Feature detection over browser sniffingProgressive enhancementCheck code for navigator.userAgent vs feature detection

Browser validation: Use page.route() to block specific resources. Use CDP to simulate network conditions. Disable JavaScript via browser settings. Verify each degradation scenario.

Category C: Empty & Edge States (EDGE)

Check IDCheckStandardMethod
EDGE-01Empty data state shows helpful messageUX best practiceNavigate to pages with no data, check display
EDGE-02Pagination handles zero resultsUX best practiceSearch for nonexistent term, check pagination
EDGE-03Long text doesn't break layoutDefensive CSSEnter very long strings (500+ chars), check overflow
EDGE-04Special characters in input don't break UIInput handlingEnter <script>, "'&<>, emoji, Unicode
EDGE-05Large data sets don't freeze UIPerformanceLoad pages with maximum data, check responsiveness
EDGE-06Rapid user actions don't cause duplicate submissionsState managementDouble-click submit buttons, rapid nav
EDGE-07Back/forward navigation maintains stateHistory managementFill form, navigate away, come back
EDGE-08Refresh preserves expected stateState persistenceRefresh during multi-step flow, check state
EDGE-09Concurrent tab/session behaviorSession managementOpen same page in two tabs, perform actions
EDGE-10Maximum file upload size handledInput validationUpload oversized file, check error message

Browser validation: Navigate to pages and test each edge case. Use act to interact with forms, submit empty/extreme data. Use JavaScript to check for UI overflow, frozen states.

Category D: API Contract & Data Handling (API)

Check IDCheckStandardMethod
API-01UI handles all HTTP error codes gracefullyAPI contractMock 400, 401, 403, 404, 422, 429, 500, 503
API-02UI handles null/undefined fields without crashingDefensive codingMock API response with null fields
API-03UI handles empty arrays/objectsDefensive codingMock API response with empty collections
API-04UI handles unexpected data typesDefensive codingMock API response with wrong types
API-05Loading states shown during API callsUX best practiceAdd 2s delay to API, verify loading indicator
API-06Race conditions handled (stale responses)State managementTrigger rapid sequential requests, verify latest wins
API-07Rate limiting (429) handled with user feedbackAPI contractMock 429 response, check UI feedback
API-08Authentication expiry handled mid-sessionSession managementMock 401 during session, check redirect to login

Browser validation: Use page.route() to mock each response scenario. Verify UI state after each mock.

Category E: Recovery & User Communication (REC)

Check IDCheckStandardMethod
REC-01Retry mechanisms exist for transient failuresResilienceMock intermittent failure, check auto-retry
REC-02User can manually retry after failureUX best practiceAfter error, verify retry action available
REC-03Progress is not lost on errorsUX best practiceFill long form, trigger error, check data persists
REC-04User is informed of degraded functionalityCommunicationWhen features fail, check for degradation notice
REC-05Recovery actions are clear and accessibleNN/g heuristicsAfter each error type, evaluate recovery UX
REC-06Status indicators for background operationsUX best practiceStart async operation, verify progress feedback

Browser validation: Use fault injection then verify recovery paths.


Phase 4: Report

Generate a structured report saved to shiplight/reports/resilience-review-{date}.md:

# Resilience Review Report
**Date:** {date}
**URL:** {url}
**Critical flows tested:** {list}
**API dependencies tested:** {count}
**Failure scenarios simulated:** {count}

## Overall Score: {X}/10 | Confidence: {X}%

## Score Breakdown
| Category | Score | Findings |
|----------|-------|----------|
| Error Handling (ERR) | 5/10 | 2 critical, 1 high |
| Graceful Degradation (DEG) | 6/10 | 1 high, 2 medium |
| Empty & Edge States (EDGE) | 4/10 | 1 critical, 3 high |
| API Contract (API) | 7/10 | 1 high, 1 medium |
| Recovery (REC) | 3/10 | 2 high, 1 medium |

## Failure Matrix
| Failure Scenario | Expected Behavior | Actual Behavior | Status |
|-----------------|-------------------|-----------------|--------|
| API returns 500 | Error message + retry | Blank screen | FAIL |
| Network timeout | Loading → timeout message | Infinite spinner | FAIL |
| Empty data set | "No results" message | Blank page | FAIL |
| ... | | | |

## Findings
(structured findings with evidence, screenshots of failure states)

Confidence Scoring

  • 90-100%: Fault injected and failure behavior verified in browser
  • 70-89%: Code analysis shows missing error handling, not validated at runtime
  • 50-69%: Pattern-based assessment (e.g., no error boundary detected)
  • Below 50%: Don't report

Phase 5: Remediate

1. Fix guidance (example)

#### ERR-01: API error shows blank screen instead of error message
**Impact:** Users see empty page, think app is broken, leave
**File:** src/pages/Dashboard.tsx:45
**Current:** `const data = await fetch('/api/data').then(r => r.json())`
**Problem:** No error handling — fetch throws on network error, .json() throws on non-JSON response
**Fix:**
- Wrap in try/catch
- Add error state: `const [error, setError] = useState(null)`
- Render error UI with retry button
- Add React Error Boundary as fallback

2. YAML regression test

- name: err-01-api-error-shows-message
  description: Verify API failure shows user-friendly error message instead of blank screen
  severity: critical
  standard: UX-Error-Handling
  steps:
    - CODE: |
        await page.route('**/api/data**', route => {
          route.fulfill({
            status: 500,
            contentType: 'application/json',
            body: JSON.stringify({ error: 'Internal Server Error' })
          });
        });
    - URL: /dashboard
    - WAIT_UNTIL: Page has finished attempting to load data
      timeout_seconds: 15
    - VERIFY: An error message is visible explaining that data could not be loaded
    - VERIFY: A retry button or recovery action is available to the user
    - VERIFY: The page is NOT blank — navigation and header are still visible

Save all YAML tests to shiplight/tests/resilience-review.test.yaml.


Tips

  • Use page.route() in CODE blocks — it's the primary tool for fault injection
  • Test the most critical user flows first (checkout, signup, core feature)
  • A blank screen is always a CRITICAL finding — it's the worst failure mode
  • Check get_browser_console_logs for uncaught promise rejections — they indicate missing error handling
  • Edge case testing (EDGE category) often reveals the most bugs per minute spent
  • Close session with close_session and use generate_html_report for evidence

适合场景

01

用户想查找某类 Agent Skill 时

02

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

03

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

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

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

能力 4

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

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

平台分布

Codex

36.54%
按下载量换算145

Claude

29.13%
按下载量换算115

Cursor

19.64%
按下载量换算78

Gemini CLI

9.83%
按下载量换算39

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

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

来源信息

继续浏览同类 Skills