frontend-code-review

指导在项目中对前端代码(Next.js/React/TypeScript/Tailwind 等)进行结构、可维护性、性能与一致性审查,基于既定规则清单。适用于用户请求审查 .tsx/.ts/.js/.jsx 等前端文件或前端目录下的页面与组件。不用于后端代码(如 .py)。

Best use case

frontend-code-review is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

指导在项目中对前端代码(Next.js/React/TypeScript/Tailwind 等)进行结构、可维护性、性能与一致性审查,基于既定规则清单。适用于用户请求审查 .tsx/.ts/.js/.jsx 等前端文件或前端目录下的页面与组件。不用于后端代码(如 .py)。

Teams using frontend-code-review should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/frontend-code-review/SKILL.md --create-dirs "https://raw.githubusercontent.com/ProgrammerAnthony/Anything-Extract/main/.agents/skills/frontend-code-review/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/frontend-code-review/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How frontend-code-review Compares

Feature / Agentfrontend-code-reviewStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

指导在项目中对前端代码(Next.js/React/TypeScript/Tailwind 等)进行结构、可维护性、性能与一致性审查,基于既定规则清单。适用于用户请求审查 .tsx/.ts/.js/.jsx 等前端文件或前端目录下的页面与组件。不用于后端代码(如 .py)。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Frontend Code Review(前端代码审查)

## 何时使用本 Skill

当用户要求**审查、分析或改进前端代码**(例如 `.tsx`、`.ts`、`.js` 文件)时使用本 skill。常见场景包括:

- **待提交变更审查**:在提交前检查当前变更中涉及的前端文件。
- **代码片段审查**:用户粘贴某个组件/页面/Hook 片段,请求审查。
- **按文件/模块审查**:用户点名一到数个前端文件或某个路由/组件目录。

以下情况**不要**使用本 skill:

- 审查目标是后端代码(如 `.py`、服务层、数据库访问等)——此时应使用后端 Code Review Skill。
- 仅讨论架构文档或后端接口设计,而非前端实现。

## 如何使用本 Skill

1. **明确审查范围与模式**:根据用户输入,限定在指定的组件、页面或目录内,不要「全仓库漫扫」。
2. 按 **Checklist** 中的规则执行审查;对每条命中的规则,找到**具体代码位置**并给出可执行建议。
3. 若某段代码未被 Checklist 覆盖,可参考 **General Review Rules** 做尽力审查。
4. 输出时**必须**严格遵循「Required Output」中的模板之一。

注意:

- 优先给出**具体、可落地**的改进建议(包括何处拆分组件、如何组织状态、如何统一样式等)。
- 若能提供简短代码示例,可帮助后续自动修复。

## 项目前端结构(审查范围参考)

以典型的 Next.js App Router + React + TypeScript + Tailwind 项目为例,常见分层与职责如下(实际路径以当前仓库为准,可根据项目实际结构类比到对应目录):

- **路由与页面入口目录(例如 `app/` 或 `frontend/app/`)**:
  - 路由与页面入口(如 `app/xxx/page.tsx`、`app/[id]/page.tsx` 等)。
  - 顶层布局(如 `layout.tsx`),通常挂载全局布局组件(主框架、侧边栏、头部),不要在此堆积业务逻辑。
- **通用与领域组件目录(例如 `components/` 或 `frontend/components/`)**:
  - 复用的布局组件(如页面头部、布局容器)、表格/卡片/表单等 UI 组件。
  - 领域组件(如知识库列表、文档分段列表、业务向导步骤组件等),负责组合 UI 与轻量交互。
- **`lib/` 或 `services/`**:
  - HTTP 客户端与前端 API 封装(如 axios 实例、领域 API 模块)。
  - 通用工具函数与 Hook(如复用的数据加载 Hook、格式化工具等)。
-- **样式配置**:
  - 全局样式(如 `app/globals.css`)用于基础样式、滚动条、字体等。
  - Tailwind 配置(如 `tailwind.config.js`)可扩展主题颜色、间距、阴影等设计令牌,避免散落魔法值。

在进行前端 Code Review 时,优先检查:

- 页面是否复用了现有布局组件与上下文(例如统一的页面头部组件、侧边栏折叠状态的上下文),而不是各自实现一套布局。
- 新增页面是否放在合理的路由目录(与现有路由结构保持一致),新增组件是否放在组件目录下的合适子目录,而不是全部堆在页面文件中。
- 数据请求是否统一走封装好的 API 层或服务模块,而不是在组件内重复配置 axios/fetch。



## Checklist

根据审查范围,优先按以下规则文件进行检查:

- **代码质量与组件设计**:若涉及组件/Hook/页面结构、TypeScript 类型、可维护性,参考 [references/code-quality-rule.md](references/code-quality-rule.md)。
- **布局、样式与 UI 一致性**:若涉及布局框架、全局样式、颜色与风格统一、响应式表现,参考 [references/layout-style-rule.md](references/layout-style-rule.md)。
- **状态管理与数据流**:若涉及本地/全局状态、表单状态、异步数据加载、API 错误处理,参考 [references/state-data-rule.md](references/state-data-rule.md)。
- **性能与交互体验**:若涉及渲染性能、大列表、客户端/服务端边界、懒加载、交互反馈,参考 [references/performance-rule.md](references/performance-rule.md)。

若 Checklist 中的规则均不适用,可退回到下文的 General Review Rules 做尽力审查。

## General Review Rules

从以下四个维度给出审查意见:

1. **结构与可维护性**
   - 组件/页面是否职责单一,可读性良好,便于拆分与复用。
   - 是否存在重复代码(卡片、按钮、列表等模式),可以抽成复用组件。
   - 类型是否清晰(尽量避免 `any`),关键数据结构是否有统一的接口/类型定义。

2. **布局、样式与一致性**
   - 是否复用统一的布局组件(主布局、页面头部、侧边栏等)。
   - Tailwind 类名是否过度堆叠、包含大量魔法色值(如随意使用类似但不一致的灰色/紫色)。
   - 是否存在同一业务模块内风格不统一的问题(按钮样式、圆角、间距等)。

3. **状态与数据**
   - 异步请求是否有完整的 loading / error / empty 状态反馈。
   - 状态是否放在合适的层级(避免过度提升或不必要的全局状态)。
   - 是否存在可以用派生值计算的状态被重复存储的问题。

4. **性能与用户体验**
   - 是否有不必要的重新渲染(例如在 `.map` 中频繁创建匿名函数或对象、缺少 key 或 key 不稳定)。
   - 大列表/复杂视图是否考虑了懒加载、分页或虚拟列表。
   - 交互是否有明确反馈(按钮禁用/加载中的样式、错误提示等)。

## Required Output

当调用本 skill 时,输出**必须**严格遵循下列两种模板之一。

### Template A(存在问题或改进建议时)

```
# Code review
Found <N> urgent issues need to be fixed:

## 1 <brief description of bug>
FilePath: <path> line <line>
<relevant code snippet or pointer>


### Suggested fix
<brief description of suggested fix>

---
... (repeat for each urgent issue) ...

Found <M> suggestions for improvement:

## 1 <brief description of suggestion>
FilePath: <path> line <line>
<relevant code snippet or pointer>


### Suggested fix
<brief description of suggested fix>

---

... (repeat for each suggestion) ...
```

要求:

- 若没有「紧急问题」,可以省略 `urgent issues` 段落。
- 若没有「建议」,可以省略 `suggestions for improvement` 段落。
- 若问题数量超过 10 条,可汇总为 "10+ urgent issues" / "10+ suggestions",并仅输出前 10 条。
- 保持模板中的空行与分隔线格式,以便后续自动解析。
- 若使用 Template A,且至少有一条需要改代码的项,最后追加一句简短追问,例如:
  - `Would you like me to use the Suggested fix section to address these issues?`

### Template B(未发现问题时)

```
## Code review
No issues found.
```

Related Skills

backend-code-review

135
from ProgrammerAnthony/Anything-Extract

指导在项目(python项目)中队后端代码进行质量、安全、可维护性与最佳实践审查,基于既定规则清单。适用于用户请求对 backend/ 下后端文件(如 .py)进行审查、分析或改进。不用于前端文件(如 .tsx、.ts、.js)。支持待提交变更审查、代码片段审查、按文件审查。

write-a-skill

135
from ProgrammerAnthony/Anything-Extract

以正确的技能结构、渐进式披露与打包资源来创建新的 agent 技能。适用于用户希望创建、编写或构建新的技能。

write-a-prd

135
from ProgrammerAnthony/Anything-Extract

通过用户访谈、代码库探索与模块设计来编写 PRD(产品需求文档),然后以 GitHub issue 的形式提交。适用于用户希望编写 PRD、创建产品需求文档,或规划一个新功能。

ubiquitous-language

135
from ProgrammerAnthony/Anything-Extract

从当前对话中抽取 DDD 风格的“统一语言”术语表(ubiquitous language glossary),标记歧义,并提出规范的术语选择。保存为 `UBIQUITOUS_LANGUAGE.md`。适用于用户希望定义领域术语、构建术语表、固化用词并强化术语一致性,或提到 “domain model” / “DDD”(领域模型与 DDD)。

triage-issue

135
from ProgrammerAnthony/Anything-Extract

通过探索代码库对 Bug/Issue 进行排查归因,并基于 TDD 方式生成修复计划,同时创建对应的 GitHub issue。适用于用户报告了 bug、希望创建 issue、提到“triage”,或想调查并规划某个问题的修复方案。

tdd

135
from ProgrammerAnthony/Anything-Extract

使用 RED-GREEN-重构(red-green-refactor)循环进行测试驱动开发。适用于用户希望用 TDD 构建新功能或修复 bug,提到 “red-green-refactor”,希望使用集成测试,或询问“test-first development(先写测试)”。

request-refactor-plan

135
from ProgrammerAnthony/Anything-Extract

通过用户访谈创建一个详细的重构计划,并将其拆分成很小的提交(tiny commits),最后以 GitHub issue 的形式归档。适用于用户希望规划一次重构、创建重构 RFC,或把重构拆成安全的渐进步骤。

prd-to-plan

135
from ProgrammerAnthony/Anything-Extract

使用 tracer-bullet 竖向切片方法把 PRD 转换成多阶段的落地实施计划,并保存为本地 Markdown 文件(存放在 `./plans/`)。适用于用户希望把 PRD 拆分为多个阶段、生成实施计划、从 PRD 推导阶段计划,或提到 “tracer bullets”。

prd-to-issues

135
from ProgrammerAnthony/Anything-Extract

使用 tracer-bullet 竖向切片法,把 PRD 拆分成彼此独立、可以直接认领的 GitHub issues(并形成对应的实现工单)。适用于用户想把 PRD 转成 issues、创建实现任务,或把 PRD 拆成工作项。

improve-codebase-architecture

135
from ProgrammerAnthony/Anything-Extract

探索代码库以发现架构改进机会,重点让代码库更容易测试:通过“加深浅模块(deepening shallow modules)”的方式重构模块结构。适用于用户想改善架构、寻找可重构机会、整合强耦合模块、或让代码库更便于 AI 导航与理解。

grill-me

135
from ProgrammerAnthony/Anything-Extract

对用户在计划或设计方面进行“无情的质询”,直到形成共同理解,并逐一解决决策树中每个分支的依赖关系。适用于用户希望对某个计划进行压力测试、希望被严格追问他们的设计,或提到 “grill me(来烤我/质问我)”。

edit-article

135
from ProgrammerAnthony/Anything-Extract

通过重组文章的段落结构、提升表达清晰度,并收紧措辞来编辑与改进文章。适用于用户希望编辑、修订或完善一份文章草稿。