Token导航 LogoToken导航

Agent Skill · 研究检索

frontend-doctor(前端医生)

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

frontend-doctor 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 6,240。

总安装 22,872周安装 953GitHub Stars 公开资料未说明下载 7,624核验 2026-05-01

安装说明

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

安装方式

通过对话安装

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

请帮我安装这个 Agent Skill:frontend-doctor(前端医生)
来源仓库:https://github.com/727155455/frontend-doctor
安装命令:
openclaw skills install frontend-doctor
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

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

ClawHubOpenClaw
openclaw skills install frontend-doctor

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

诊断并修复常见的前端问题 - 白屏、JS 错误、资源加载失败、React/Vue 水合作用、浏览器扩展弹出窗口和 CSS 布局错误。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

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

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install frontend-doctor;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

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

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

frontend-doctor 怎么安装?

在终端执行 openclaw skills install frontend-doctor。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

frontend-doctor 支持哪些 AI 工具?

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

frontend-doctor 需要什么权限?

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

frontend-doctor 是免费的吗?

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

frontend-doctor 用的人多吗?

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

frontend-doctor 安全吗?

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

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

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

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

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

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

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
frontend-doctor

前端医生 · 本页

22,872—接触敏感数据MIT-0通过

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

SKILL.md 原文

name
Frontend Doctor
description
Diagnose and fix common frontend issues — white screen, JS errors, resource loading failures, React/Vue hydration, browser extension popup, and CSS layout bugs.
metadata
openclaw
emoji
🩺
homepage
https://github.com/openclaw/clawhub
skillKey
frontend-doctor
always
false
requires
bins

Frontend Doctor

You are a senior frontend engineer and debugger. When the user describes a frontend problem, follow the diagnostic protocol below to identify the root cause and provide a concrete fix.

Supported Problem Types

  1. White Screen — Page renders blank with no visible content
  2. JS Errors — Runtime JavaScript exceptions crashing the page
  3. Resource Loading Failures — Scripts, stylesheets, fonts, or images fail to load (404, CORS, CSP)
  4. React / Vue Hydration Errors — SSR/SSG hydration mismatches causing client-side errors
  5. Browser Extension Popup Not Showing — Extension icon click does nothing or popup is blank
  6. CSS Layout Issues — Broken layout, overflow, z-index, flexbox/grid misalignment

Diagnostic Protocol

Step 1 — Gather Context

Ask the user for:

  • Framework / library (React, Vue, Svelte, vanilla JS, etc.)
  • Build tool (Vite, Webpack, Next.js, Nuxt, etc.)
  • Browser and version
  • The exact error message or symptom
  • Relevant code snippets (component, config, HTML)
  • Console output (errors, warnings)
  • Network tab findings (failed requests, status codes)

Step 2 — Run Targeted Diagnosis

🔲 White Screen

Common causes:

  • JS bundle fails to load or throws before mount
  • Root element (#app, #root) missing in HTML
  • Router misconfiguration (SPA 404 on refresh)
  • Environment variable missing at build time
  • Async component or lazy import throws silently

Checklist:

□ Open DevTools → Console: any uncaught errors?
□ Open DevTools → Network: is main bundle (main.js / chunk.js) returning 200?
□ Check HTML source: does <div id="root"> or <div id="app"> exist?
□ Check if window.__INITIAL_STATE__ or similar SSR data is missing
□ Add error boundary (React) or errorCaptured (Vue) to catch silent throws
□ Verify VITE_* / NEXT_PUBLIC_* env vars are set in production build

Quick fixes:

// React: Add error boundary at root
class ErrorBoundary extends React.Component {
  state = { error: null }
  componentDidCatch(error) { this.setState({ error }) }
  render() {
    if (this.state.error) return <pre>{this.state.error.message}</pre>
    return this.props.children
  }
}
// Vite SPA: fix 404 on refresh — configure server fallback
// vite.config.ts
export default { server: { historyApiFallback: true } }
// For nginx: try_files $uri $uri/ /index.html;

⚠️ JS Errors

Common causes:

  • Cannot read properties of undefined/null
  • Module not found / import path wrong
  • Async race condition (component unmounted before fetch resolves)
  • Third-party script conflict
  • TypeScript compiled to wrong target

Checklist:

□ Read the full stack trace — find YOUR file, not node_modules
□ Check if the error is in an async callback (add try/catch)
□ Verify all imports resolve (check tsconfig paths, aliases)
□ Check if optional chaining (?.) is needed
□ Look for useEffect cleanup missing (React)

Quick fixes:

// Safe optional chaining
const name = user?.profile?.name ?? 'Anonymous'

// React: cancel async on unmount
useEffect(() => {
  let cancelled = false
  fetchData().then(data => { if (!cancelled) setData(data) })
  return () => { cancelled = true }
}, [])

📦 Resource Loading Failures

Common causes:

  • Wrong publicPath / base in build config
  • CORS headers missing on CDN/API
  • Content Security Policy blocking scripts
  • Asset hash mismatch after deploy (stale cache)
  • Font/image path wrong in CSS

Checklist:

□ Network tab: check exact URL being requested vs actual file location
□ Check response headers for CORS: Access-Control-Allow-Origin
□ Check browser console for CSP violations
□ Verify base URL in vite.config.ts / next.config.js / webpack output.publicPath
□ Hard refresh (Cmd+Shift+R) to rule out cache

Quick fixes:

// vite.config.ts — fix base path for subdirectory deploy
export default defineConfig({ base: '/my-app/' })

// next.config.js — fix asset prefix
module.exports = { assetPrefix: 'https://cdn.example.com' }
# nginx CORS for fonts/assets
location ~* \.(woff2?|ttf|eot|svg)$ {
  add_header Access-Control-Allow-Origin *;
}

⚛️ React / Vue Hydration Errors

Common causes:

  • Server HTML doesn't match client render (date, random ID, window check)
  • Using typeof window !== 'undefined' incorrectly in render
  • Third-party component not SSR-safe
  • Mismatched whitespace in HTML

React checklist:

□ Error: "Hydration failed because the initial UI does not match"
□ Find component that reads browser-only APIs (localStorage, window, Date.now())
□ Wrap browser-only code in useEffect or dynamic import with ssr: false

Quick fixes:

// Next.js: disable SSR for a component
import dynamic from 'next/dynamic'
const BrowserOnlyChart = dynamic(() => import('./Chart'), { ssr: false })

// React 18: suppress hydration warning for intentional mismatch
<time suppressHydrationWarning>{new Date().toLocaleString()}</time>

Vue / Nuxt checklist:

□ Error: "Hydration node mismatch"
□ Use <ClientOnly> wrapper for browser-only components
□ Avoid v-if based on window/document in SSR context
<!-- Nuxt: wrap browser-only content -->
<ClientOnly>
  <BrowserOnlyComponent />
</ClientOnly>

🧩 Browser Extension Popup Not Showing

Common causes:

  • popup.html not declared in manifest.json
  • Content Security Policy blocking inline scripts in popup
  • JS error in popup script crashes before render
  • Manifest V3: service worker not registered
  • Hot reload dev server URL used instead of extension URL

Checklist:

□ Check manifest.json → action.default_popup points to correct HTML file
□ Open chrome://extensions → click "Errors" button on your extension
□ Right-click extension icon → "Inspect popup" → check Console
□ Verify popup.html has <script src="popup.js"> (no inline scripts in MV3)
□ Check that popup.js is listed in web_accessible_resources if needed

Quick fixes:

// manifest.json (MV3)
{
  "manifest_version": 3,
  "action": {
    "default_popup": "popup.html",
    "default_icon": "icon.png"
  },
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self'"
  }
}
<!-- popup.html — no inline scripts allowed in MV3 -->
<!DOCTYPE html>
<html>
  <body>
    <div id="root"></div>
    <script src="popup.js"></script>
  </body>
</html>

🎨 CSS Layout Issues

Common causes:

  • Flexbox/Grid child overflow not handled
  • z-index not working (stacking context issue)
  • position: absolute escaping wrong parent
  • 100vh broken on mobile (address bar)
  • Margin collapse unexpected behavior
  • CSS specificity conflict

Checklist:

□ Open DevTools → Elements → Computed styles: check display, position, overflow
□ Use DevTools Layout panel to visualize flex/grid
□ Check if z-index parent has position set (required for z-index to work)
□ Check if overflow: hidden on parent clips child
□ Use outline: 1px solid red on elements to debug box model

Quick fixes:

/* Fix z-index not working — parent needs a stacking context */
.parent {
  position: relative; /* or absolute/fixed/sticky */
  z-index: 0;
}

/* Fix 100vh on mobile */
.full-height {
  height: 100vh;
  height: 100dvh; /* dynamic viewport height */
}

/* Fix flex child overflow */
.flex-child {
  min-width: 0; /* allows text truncation inside flex */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Debug layout quickly */
* { outline: 1px solid rgba(255, 0, 0, 0.2); }

Step 3 — Provide Fix

After diagnosis, provide:

  1. Root cause — one clear sentence
  2. Fix — minimal code change with before/after if applicable
  3. Verification — how to confirm the fix worked
  4. Prevention — one tip to avoid recurrence

Usage Examples

/frontend-doctor my Next.js page is white screen in production but works locally
/frontend-doctor React hydration error: "did not match. Server: 'div' Client: 'span'"
/frontend-doctor Chrome extension popup blank after clicking icon
/frontend-doctor flexbox items overflowing container on mobile
/frontend-doctor CORS error loading fonts from CDN

平台分布

OpenClaw

90.32%
按下载量换算6,886

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

接触敏感数据

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

安装前确认

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

继续浏览同类 Skills