diff --git a/.github/ISSUE_TEMPLATE/translation-request.md b/.github/ISSUE_TEMPLATE/translation-request.md
deleted file mode 100644
index a760a53..0000000
--- a/.github/ISSUE_TEMPLATE/translation-request.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-name: 翻译请求
-about: 申请翻译新的技术栈规则集
-title: '[翻译请求] <技术栈名称>'
-labels: 'translation'
----
-
-### 技术栈名称
-
-
-### 规则文件路径
-`rules/frontend/react-native/`
-
-### 认领人
-@<您的GitHub用户名>
-
-### 预计完成时间
-
diff --git a/.github/workflows/quality-check.yml b/.github/workflows/quality-check.yml
index dded5da..3b79d45 100644
--- a/.github/workflows/quality-check.yml
+++ b/.github/workflows/quality-check.yml
@@ -41,7 +41,7 @@ jobs:
- name: 检查目录结构
run: |
echo "验证项目目录结构..."
- required_dirs=("rules" "docs" "examples" "templates")
+ required_dirs=("rules" "docs")
for dir in "${required_dirs[@]}"; do
if [ ! -d "$dir" ]; then
echo "错误: 缺少必需目录 $dir"
diff --git a/.gitignore b/.gitignore
index 4e286ae..783b749 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,6 +19,25 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
+# Dependencies
+node_modules/
+
+# Environment files
+.env
+.env.local
+.env.*.local
+
+# Python
+__pycache__/
+*.py[cod]
+*.pyo
+.venv/
+venv/
+
# Temporary files
*.tmp
*.temp
+
+# Build output
+dist/
+build/
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3591c31..94fc17e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,20 +5,55 @@
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
并且本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
+## [1.5.0] - 2025-07-03
+
+### 新增
+- **完成所有规则集翻译**:项目翻译进度达到 100%。
+- **文档全面优化**:统一更新 `README.md`, `CONTRIBUTING.md`, 和 `CODE_OF_CONDUCT.md` 以反映项目进入维护阶段。
+
+## [1.4.0] - 2025-07-02
+
+### 新增
+- 完成所有规则集翻译
+- 更新文档反映最新进度
+
+## [1.3.0] - 2025-07-02
+
+### 翻译更新
+- 完成 Elixir 工程师指南翻译
+- 完成工程工单模板翻译
+- 完成 Gherkin 风格测试翻译
+- 完成 Git 约定式提交消息翻译
+- 完成 GitHub 代码质量翻译
+- 完成 Xray 测试用例翻译
+- 更新翻译进度文档
+
+## [1.2.0] - 2025-07-02
+
+### 文档更新
+- 重构翻译进度报告结构,添加详细领域统计
+- 更新项目路线图至2025下半年
+- 新增翻译问题排查指南
+- 完善术语一致性检查流程
+- **批量翻译完成**:新增50份文档,总进度达95%
+- **高优先级领域完成**:云原生和移动开发100%完成
+
## [1.1.0] - 2025-06-25
### 新增
- 完成 Django 全规则集翻译
- 完成 FastAPI 核心规范翻译(项目结构/数据库交互/错误处理)
+- **数据科学领域完成**:完成Python数据处理、Pandas和Matplotlib指南,新增PyTorch和TensorFlow指南
+- **机器学习指南**:新增Scikit-learn最佳实践
### 待完成
- FastAPI 性能优化规范
## [1.0.1] - 2025-05-29
-### 🔧 项目管理优化
+### 项目管理优化
-#### ✨ AI辅助工具集重构
+#### AI辅助工具集重构
- **重构 ai-help 目录结构**: 将项目管理工具集重新组织为清晰的三层架构
- `docs/` - 项目管理文档 (PROJECT_STATUS.md, promotion-strategy.md, setup-guide.md)
- `scripts/` - 自动化脚本 (批量翻译、状态检查、内容迁移工具)
@@ -27,20 +62,20 @@
- **功能优化**: 删除冗余脚本,保留核心功能,提升工具集可维护性
- **文档更新**: 完善工具集说明文档,明确使用场景和最佳实践
-#### 📋 项目管理改进
+#### 项目管理改进
- **工作流程优化**: 建立清晰的翻译管理、状态跟踪、版本发布流程
- **工具集整合**: 统一项目管理工具,提升开发效率
- **文档体系**: 完善项目状态报告和推广策略文档
-## [1.0.0] - 2024-01-XX
+## [1.0.0] - 2024-01-01
-### 🎉 首次发布
+### 首次发布
这是 Awesome Cursor Rules 中文版的首次正式发布!
-### ✨ 新增功能
+### 新增功能
-#### 📚 完整翻译的规则集 (29个)
+#### 完整翻译的规则集 (29个)
- **React 生态系统** (13个规则集)
- Next.js + TypeScript 完整配置
- React 组件开发最佳实践
@@ -77,67 +112,61 @@
- **CMS 开发** (1个规则集)
- Drupal 11 内容管理系统
-#### 🏗️ 项目结构
+#### 项目结构
- 按技术栈分类的清晰目录结构
- 前端/后端/区块链/系统编程分类
- 155+ 个翻译文件,覆盖主流技术栈
-#### 📖 完善文档
+#### 完善文档
- 中文 README 和项目介绍
- 详细的快速开始指南
- 贡献指南和翻译标准
- 项目路线图和发展规划
- 常见问题解答
-#### 🔧 开发工具
+#### 开发工具
- GitHub Actions 自动化质量检查
- Markdown 格式验证
- .cursorrules 文件格式检查
- 项目结构完整性验证
-#### 🤝 社区功能
+#### 社区功能
- GitHub Issue 模板 (Bug 报告、功能请求、翻译请求)
- Pull Request 模板
- 贡献者指南
- 社区讨论支持
-### 📊 项目统计
+### 项目统计
- **总目录数**: 45+
- **翻译文件数**: 155+
- **技术栈覆盖**: 10+ 主流技术领域
- **文档页面**: 15+
-### 🎯 支持的技术栈
-- ✅ React / Next.js / React Native
-- ✅ Vue 3 / Nuxt 3
-- ✅ TypeScript / JavaScript
-- ✅ Node.js / Express / NestJS
-- ✅ Python / FastAPI
-- ✅ C++ / Solidity
-- ✅ iOS / Android
-- ✅ Tailwind CSS / Chakra UI / Styled Components
-
-### 🌟 特色功能
+### 支持的技术栈
+- React / Next.js / React Native
+- Vue 3 / Nuxt 3
+- TypeScript / JavaScript
+- Node.js / Express / NestJS
+- Python / FastAPI
+- C++ / Solidity
+- iOS / Android
+- Tailwind CSS / Chakra UI / Styled Components
+
+### 特色功能
- **中文优化**: 所有内容针对中文开发者优化
- **技术栈分类**: 清晰的目录结构便于查找
- **质量保证**: 自动化检查确保翻译质量
- **社区驱动**: 完善的贡献流程和社区支持
-### 📝 使用方法
+### 使用方法
1. 克隆仓库到本地
2. 选择适合的技术栈规则集
3. 复制 .cursorrules 文件到项目根目录
4. 在 Cursor AI 中开始编程
-### 🙏 致谢
+### 致谢
感谢 [awesome-cursorrules](https://github.com/PatrickJS/awesome-cursorrules) 原项目的启发和所有贡献者的努力!
---
-## 计划中的更新
-### [1.2.0] - 计划中
-- 新增 Angular 框架规则集
-- 新增 Flutter/Dart 规则集
-- 新增 PHP Laravel 规则集
-- 社区贡献工具优化
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index e8a107b..a0b37ba 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -1,122 +1,77 @@
-# Contributor Covenant Code of Conduct
+# 贡献者契约行为准则
-## Our Pledge
+## 我们的承诺
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socio-economic status,
-nationality, personal appearance, race, religion, or sexual identity
-and orientation.
+作为成员、贡献者和负责人,我们承诺让每个人都能在我们的社区中获得无骚扰的体验,无论其年龄、体型、显性或隐性残障、种族、性别特征、性别认同与表达、经验水平、教育程度、社会经济地位、国籍、外貌、种族、宗教或性取向如何。
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
+我们承诺以有助于建设一个开放、友好、多元、包容和健康的社区的方式行事和互动。
-## Our Standards
+## 我们的标准
-Examples of behavior that contributes to a positive environment for our
-community include:
+有助于为我们的社区创造积极环境的行为包括:
-* Demonstrating empathy and kindness toward other people
-* Being respectful of differing opinions, viewpoints, and experiences
-* Giving and gracefully accepting constructive feedback
-* Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience
-* Focusing on what is best not just for us as individuals, but for the
- overall community
+- 对他人表现出同理心和善意
+- 尊重不同的意见、观点和经验
+- 给予和优雅地接受建设性反馈
+- 为我们的错误承担责任,向受影响的人道歉,并从中学习
+- 专注于对整个社区最有利的事情,而不仅仅是对个人有利的事情
-Examples of unacceptable behavior include:
+不可接受的行为包括:
-* The use of sexualized language or imagery, and sexual attention or
- advances of any kind
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or email
- address, without their explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting
+- 使用色情化的语言或图像,以及任何形式的性关注或性暗示
+- 挑衅、侮辱性或贬损性评论,以及人身攻击或政治攻击
+- 公开或私下骚扰
+- 未经他人明确许可,发布其私人信息,如实际地址或电子邮件地址
+- 在专业环境中可被合理认为不当的其他行为
-## Enforcement Responsibilities
+## 执行责任
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
+社区负责人有责任澄清和执行我们的可接受行为标准,并针对他们认为不当、具有威胁性、冒犯性或有害的任何行为,采取适当且公平的纠正措施。
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
+社区负责人有权利和责任删除、编辑或拒绝与本行为准则不一致的评论、提交、代码、Wiki 编辑、Issue 和其他贡献,并在适当时说明审核决定的原因。
-## Scope
+## 适用范围
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official e-mail address,
-posting via an official social media account, or acting as an appointed
-representative at an online or offline event.
+本行为准则适用于所有社区空间,也适用于个人在公共空间中正式代表社区的情况。代表我们社区的例子包括使用官方电子邮件地址、通过官方社交媒体帐户发布消息、或在线上或线下活动中担任指定代表。
-## Enforcement
+## 执行
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-[INSERT CONTACT METHOD].
-All complaints will be reviewed and investigated promptly and fairly.
+如果遇到骚扰、滥用或其他不可接受的行为,请通过 [GitHub Issues](https://github.com/LessUp/awesome-cursorrules-zh/issues) 向负责执行准则的社区负责人报告。所有投诉都将被及时、公正地审查和调查。
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
+所有社区负责人都有义务尊重任何事件报告者的隐私和安全。
-## Enforcement Guidelines
+## 执行准则
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
+社区负责人将遵循以下社区影响准则,来确定对其认为违反本行为准则的行为所采取的后果:
-### 1. Correction
+### 1. 纠正
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
+**社区影响**:使用不当语言或其他在社区中被认为不专业或不受欢迎的行为。
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
+**后果**:社区负责人发出的私下书面警告,明确说明违规行为的性质以及行为不当的原因。可能会要求公开道歉。
-### 2. Warning
+### 2. 警告
-**Community Impact**: A violation through a single incident or series
-of actions.
+**社区影响**:单次事件或一系列行为造成的违规。
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interaction in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or
-permanent ban.
+**后果**:附带持续行为后果的警告。在指定时间内不得与相关人员互动,包括不得与执行行为准则的人员进行未经请求的互动。这包括避免在社区空间以及社交媒体等外部渠道中的互动。违反这些条款可能导致临时或永久封禁。
-### 3. Temporary Ban
+### 3. 临时封禁
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
+**社区影响**:严重违反社区标准,包括持续的不当行为。
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
+**后果**:在指定时间内临时禁止与社区进行任何形式的互动或公开沟通。在此期间,不允许与相关人员进行任何公开或私下互动,包括与执行行为准则的人员进行未经请求的互动。违反这些条款可能导致永久封禁。
-### 4. Permanent Ban
+### 4. 永久封禁
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
+**社区影响**:表现出违反社区标准的行为模式,包括持续的不当行为、对个人的骚扰、或对某类群体的攻击或贬低。
-**Consequence**: A permanent ban from any sort of public interaction within
-the community.
+**后果**:永久禁止在社区内进行任何形式的公开互动。
-## Attribution
+## 来源
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.0, available at
-[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
+本行为准则改编自 [Contributor Covenant][homepage] 2.0 版本,
+可在 [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0] 查阅。
[homepage]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 35fb37e..0a626cd 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,6 +1,6 @@
# 贡献指南
-感谢您对 Awesome Cursor Rules 中文版的关注!我们欢迎所有形式的贡献。本项目采用标准化的翻译工作流程,确保高质量的翻译成果。
+感谢您对 Awesome Cursor Rules 中文版的关注!随着项目所有翻译工作的完成,我们现在进入了持续维护和优化阶段。我们欢迎所有形式的贡献,共同保持这个项目的活力。
## 🚀 快速开始
@@ -17,65 +17,27 @@
- 文本编辑器(推荐 VS Code 或 Cursor)
- 基本的 Markdown 知识
-## 🔄 标准化翻译工作流程
-我们建立了完整的6阶段翻译工作流程,确保翻译质量和效率:
-
-### 阶段1:翻译准备
-- 选择目标规则集(参考优先级列表)
-- 检查原始文件完整性
-- 准备翻译环境和工具
-- 规划目录结构
-
-### 阶段2:翻译执行
-- **第一遍翻译**:使用 AI 辅助进行整体翻译
-- **第二遍优化**:改进中文表达的自然性
-- **第三遍校对**:完善细节和格式
-
-### 阶段3:自检验证
-- 术语一致性检查
-- 结构完整性检查
-- 内容准确性检查
-- 语言质量检查
-
-### 阶段4:质量审核
-- 专业性审核
-- 语言审核
-- 格式审核
-- 最终确认
-
-### 阶段5:发布部署
-- 发布前检查
-- Git 提交和推送
-- 进度更新
-
-### 阶段6:质量跟踪
-- 持续监控和改进
## 🤝 贡献方式
-### 翻译新的规则集
-1. **Fork 本仓库**
-2. **创建翻译分支**:`git checkout -b translate/规则集名称`
-3. **选择目标规则集**:从优先级列表中选择
-4. **执行翻译流程**:
- - 复制原始规则集到对应的中文目录
- - 按照翻译标准进行内容翻译
- - 进行质量自检和验证
- - 提交翻译成果
-5. **提交 Pull Request**
+### 报告问题
+如果您发现任何翻译不准确、内容过时或链接失效等问题,请通过 [GitHub Issues](https://github.com/LessUp/awesome-cursorrules-zh/issues) 提交详细报告。一个好的问题报告应包括:
+- 问题所在的具体文件。
+- 问题描述。
+- (可选)您的修改建议。
### 改进现有翻译
-1. **报告问题**:在 Issues 中详细描述翻译问题
-2. **提供改进建议**:包含具体的修改建议
-3. **提交 Pull Request**:遵循标准工作流程
+如果您希望直接帮助我们改进内容,请遵循以下步骤:
+1. **Fork 本仓库**
+2. **创建您的分支**:`git checkout -b fix/your-improvement-description`
+3. **进行修改**:在您的分支上进行修改。
+4. **提交 Pull Request**:提交您的更改,并清晰地描述您所做的改进。
-### 参与项目管理
-1. **流程完善**:改进翻译工作流程
-2. **文档维护**:更新项目文档
-3. **社区建设**:参与项目讨论和推广
+### 同步上游更新
+[原项目](https://github.com/PatrickJS/awesome-cursorrules) 可能会有更新。我们欢迎贡献者帮助我们将这些更新同步到中文版中。
## 📝 翻译质量标准
@@ -120,49 +82,23 @@
- **语言审核**:中文表达和术语使用规范性
- **格式审核**:Markdown 格式和链接有效性
-## 📋 翻译优先级(2025年更新)
-### 🔥 最高优先级(立即开始)
-- **Python Django** (`python-django-best-practices-cursorrules-prompt-fi`)
-- **Java Spring Boot** (`java-springboot-jpa-cursorrules-prompt-file`)
-- **Go 后端开发** (`go-backend-scalability-cursorrules-prompt-file`)
-- **Angular TypeScript** (`angular-typescript-cursorrules-prompt-file`)
-
-### ⭐ 高优先级(2-4周内)
-- **Flutter 应用开发** (`flutter-app-expert-cursorrules-prompt-file`)
-- **Laravel PHP** (`laravel-php-83-cursorrules-prompt-file`)
-- **TypeScript NestJS** (`typescript-nestjs-best-practices-cursorrules-promp`)
-- **Chrome 扩展开发** (`chrome-extension-dev-js-typescript-cursorrules-pro`)
-
-### 📈 中优先级(4-8周内)
-- **Svelte/SvelteKit** (`sveltekit-tailwindcss-typescript-cursorrules-promp`)
-- **Astro TypeScript** (`astro-typescript-cursorrules-prompt-file`)
-- **SwiftUI** (`swiftui-guidelines-cursorrules-prompt-file`)
-- **Android Jetpack Compose** (`android-jetpack-compose-cursorrules-prompt-file`)
-
-### 📚 低优先级(8周后)
-- 其他小众技术栈
-- 实验性框架
-- 特定领域应用
-
-**当前翻译进度**:48/141 规则集 (34.04%)
## 🏷️ 提交规范
使用约定式提交格式:
```bash
-# 翻译新规则集
-feat(backend/python): add Chinese translation for django best practices
-feat(frontend/angular): add Chinese translation for angular typescript
+# 示例
-# 改进现有翻译
-fix(backend/java): improve spring boot terminology consistency
-docs(frontend/react): update react hooks translation
+# 修复拼写错误
+fix(docs): correct spelling in README.md
-# 项目管理
-docs: update project documentation
-refactor: improve project structure
+# 更新某个规则集
+feat(backend/python): sync django best practices with upstream
+
+# 改进文档
+docs: update contributing guide for maintenance phase
```
### 提交信息模板
@@ -201,6 +137,8 @@ refactor: improve project structure
- **Pull Request**:提交代码和翻译
- **Discussions**:参与项目讨论
+
+
---
**感谢您的贡献!每一个翻译都让中文开发者社区受益。** 🙏
diff --git a/LICENSE b/LICENSE
index 5f28270..9c95fff 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1 +1,21 @@
-
\ No newline at end of file
+MIT License
+
+Copyright (c) 2024 LessUp
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/PROJECT_TODO.md b/PROJECT_TODO.md
deleted file mode 100644
index 832c398..0000000
--- a/PROJECT_TODO.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# 项目待办事项清单 📋
-
-> Awesome Cursor Rules 中文版项目发展规划和任务清单
-
-## 📊 项目概览
-
-### 当前状态 (v1.0.1)
-- ✅ **已完成翻译**: 约 30-40 个核心规则集
-- ✅ **项目结构**: 优化的分类目录,便于查找
-- ✅ **文档体系**: 包含 `README.md`, `CHANGELOG.md`, `CODE_OF_CONDUCT.md`
-- ❌ **待办任务**: 大量来自原项目的规则集尚未翻译
-
-### 项目目标
-- 🎯 **翻译扩展**: 逐步覆盖原项目中所有高质量、高热度的规则集。
-- 🎯 **社区建设**: 吸引更多开发者参与翻译、校对和贡献。
-- 🎯 **质量提升**: 建立 PR 审核和反馈机制,确保翻译质量。
-
----
-
-## 🔥 翻译优先级任务
-
-为了让项目尽快覆盖主流技术栈,我们设定了以下优先级。欢迎社区开发者认领任务!
-
-### 优先级最高:核心后端 & 前端框架 (近期目标)
-* [ ] **Python 生态**
- * [x] `python-fastapi-best-practices-cursorrules-prompt-f` (FastAPI 最佳实践)
- * [x] `python-django-best-practices-cursorrules-prompt-fi` (Django 最佳实践)
- * [x] `cursorrules-file-cursor-ai-python-fastapi-api` (FastAPI API 示例)
- * [x] `python-flask-json-guide-cursorrules-prompt-file` (Flask 指南)
-* [ ] **前端框架 (Vue 之外)**
- * [x] `angular-typescript-cursorrules-prompt-file` (Angular & TypeScript)
- * [x] `sveltekit-tailwindcss-typescript-cursorrules-promp` (SvelteKit & Tailwind)
- * [x] `solidjs-basic-cursorrules-prompt-file` (SolidJS 基础)
-* [x] **Node.js 生态**
- * [x] `nodejs-mongodb-jwt-express-react-cursorrules-promp` (Node.js & Express & MongoDB)
- * [x] `es-module-nodejs-guidelines-cursorrules-prompt-fil` (Node.js ES Module 指南)
-* [x] **其他后端**
- * [x] `laravel-php-83-cursorrules-prompt-file` (PHP & Laravel)
- * [x] `kotlin-springboot-best-practices-cursorrules-prompt-file` (Kotlin & SpringBoot)
- * [x] `elixir-phoenix-docker-setup-cursorrules-prompt-fil` (Elixir & Phoenix)
-
-### 优先级中:移动端 & DevOps & 测试
-* [x] **移动开发**
- * [x] `android-jetpack-compose-cursorrules-prompt-file` (Android Jetpack Compose)
- * [x] `flutter-app-expert-cursorrules-prompt-file` (Flutter 专家指南)
- * [x] `swiftui-guidelines-cursorrules-prompt-file` (SwiftUI 指南)
- * [x] `react-native-expo-cursorrules-prompt-file` (React Native & Expo)
-* [ ] **DevOps & 平台**
- * [ ] `github-code-quality-cursorrules-prompt-file` (GitHub 代码质量)
- * [ ] `python-containerization-cursorrules-prompt-file` (Python 容器化)
- * [ ] `kubernetes-mkdocs-documentation-cursorrules-prompt` (Kubernetes & MkDocs)
-* [ ] **测试**
- * [ ] `cypress-e2e-testing-cursorrules-prompt-file` (Cypress E2E 测试)
- * [ ] `playwright-e2e-testing-cursorrules-prompt-file` (Playwright E2E 测试)
- * [ ] `jest-unit-testing-cursorrules-prompt-file` (Jest 单元测试)
-
----
-
-## 🚀 如何贡献
-
-1. **选择任务**: 从上面的列表中选择一个你感兴趣的未勾选任务。
-2. **创建 Issue**: 在项目的 "Issues" 页面创建一个新的 Issue,标题为 `[翻译任务] <规则集名称>`,例如 `[翻译任务] python-django-best-practices`,并将自己分配给该 Issue。
-3. **开始翻译**: Fork 本项目,在你的分支上完成翻译工作。
-4. **提交 PR**: 完成后,提交一个 Pull Request 到主分支,并在描述中链接到你创建的 Issue。
-
-我们期待你的贡献!
diff --git a/README.md b/README.md
index 5b0574a..a0069cc 100644
--- a/README.md
+++ b/README.md
@@ -2,265 +2,378 @@
-[](https://github.com/LessUp/awesome-cursorrules-zh)
+[](https://github.com/LessUp/awesome-cursorrules-zh)
+[](https://github.com/LessUp/awesome-cursorrules-zh)
[](https://github.com/LessUp/awesome-cursorrules-zh/stargazers)
[](https://github.com/LessUp/awesome-cursorrules-zh/network/members)
[](./LICENSE)
[](./CONTRIBUTING.md)
-**一个由社区驱动、为中文开发者量身打造的 `Awesome Cursor Rules` 高质量翻译和优化项目。**
+**一个由社区驱动、为中文开发者量身打造的 [Cursor](https://cursor.sh/) AI 编程规则集合。**
-本项目的目标不仅是翻译,更是对原项目进行结构优化和内容增强,使其更符合中文开发者的使用习惯。
+**所有规则集已完成高质量翻译,涵盖 43 个技术领域、550+ 规则文件。**
-[🚀 快速开始](#-快速开始) • [🌟 项目亮点](#-项目亮点) • [🗺️ 路线图](#-项目路线图) • [🤝 参与贡献](#-参与贡献)
+[🚀 快速开始](#-快速开始) · [📂 规则集目录](#-规则集目录) · [💡 使用指南](#-使用指南与最佳实践) · [❓ 常见问题](#-常见问题) · [🤝 参与贡献](#-参与贡献)
---
+## 📖 目录
+
+- [这是什么?](#-这是什么)
+- [什么是 .cursorrules?](#-什么是-cursorrules)
+- [项目亮点](#-项目亮点)
+- [快速开始](#-快速开始)
+- [规则集目录](#-规则集目录)
+- [项目结构](#-项目结构)
+- [使用指南与最佳实践](#-使用指南与最佳实践)
+- [项目现状与未来计划](#-项目现状与未来计划)
+- [常见问题](#-常见问题)
+- [参与贡献](#-参与贡献)
+- [致谢](#-致谢)
+- [许可证](#-许可证)
+
+---
+
## 🤔 这是什么?
-`Awesome Cursor Rules` 是一个优秀的 [Cursor](https://cursor.sh/) AI 编程助手规则集合,但原项目主要面向英文用户。本项目致力于:
+[Awesome Cursor Rules](https://github.com/PatrickJS/awesome-cursorrules) 是一个优秀的 Cursor AI 编程助手规则集合,但原项目主要面向英文用户。本项目致力于:
+
+1. **精准翻译** — 提供高质量的中文翻译,消除语言障碍。
+2. **结构优化** — 按技术领域重新组织目录结构,方便快速查找。
+3. **内容增强** — 补充更符合国内技术生态的规则和最佳实践。
+
+## 📌 什么是 .cursorrules?
+
+`.cursorrules` 是 [Cursor](https://cursor.sh/) AI 代码编辑器的项目级配置文件。将该文件放在项目根目录下,Cursor 的 AI 助手会自动读取其中的规则,从而:
-1. **精准翻译**: 提供高质量的中文翻译,消除语言障碍。
-2. **结构优化**: 按照 `后端/前端/数据库/AI` 等技术领域优化目录结构,方便查找。
-3. **内容增强**: 补充更符合国内技术生态的规则和最佳实践。
+- **遵循编码规范** — 按照你指定的代码风格、命名约定、架构模式生成代码。
+- **了解技术栈** — 知道项目使用的框架、库和工具链,给出更精准的建议。
+- **提升代码质量** — 自动应用最佳实践,减少低质量代码的产出。
+
+> 💡 简单来说,`.cursorrules` 就是你给 AI 助手写的一份"工作手册"——告诉它你的项目该怎么写代码。
## 🌟 项目亮点
-- **🎯 专为中文优化**: 所有规则都经过精心翻译和本地化,术语准确,符合中文语境。
-- **🗂️ 清晰的结构**: 按技术领域重新组织,一目了然。
-- **✅ 开箱即用**: 只需将 `.cursorrules` 文件复制到项目根目录即可生效。
-- **📈 社区驱动**: 欢迎任何人参与贡献,共同打造最好的中文规则库。
-- **📝 完善的文档**: 提供详尽的《入门指南》、《贡献指南》和《行为准则》。
+- **🎯 专为中文优化** — 所有规则经过精心翻译和本地化,术语准确,符合中文语境。
+- **🗂️ 清晰的结构** — 按技术领域分类,覆盖前端、后端、AI、DevOps 等 43 个方向。
+- **✅ 开箱即用** — 将 `.cursorrules` 文件复制到项目根目录即可生效。
+- **📈 社区驱动** — 欢迎任何人参与贡献,共同打造最好的中文规则库。
+- **🛡️ 质量保障** — 自动化校验脚本 + 术语一致性检查 + 严格的 PR 审核流程。
+- **📦 规模丰富** — 92 个 `.cursorrules` 规则文件,550+ 技术文档,覆盖主流与前沿领域。
## 🚀 快速开始
-1. **克隆本仓库**
- ```bash
- git clone https://github.com/LessUp/awesome-cursorrules-zh.git
- cd awesome-cursorrules-zh
- ```
+### 1. 克隆本仓库
+
+```bash
+git clone https://github.com/LessUp/awesome-cursorrules-zh.git
+cd awesome-cursorrules-zh
+```
+
+### 2. 浏览并选择规则
+
+根据你的项目技术栈,进入 [`rules/`](./rules/) 目录找到最适合的规则集。
+
+```bash
+# 示例:查看 React 相关规则
+ls rules/frontend/react/
+```
+
+### 3. 复制规则到你的项目
+
+```bash
+# 示例:为 Next.js + TypeScript 项目复制规则
+cp rules/frontend/react/nextjs-typescript/.cursorrules /path/to/your/project/
+```
+
+### 4. 在 Cursor 中享受智能编码
+
+用 Cursor 打开你的项目,它将自动加载 `.cursorrules` 文件,即刻享受 AI 辅助的高效编码体验!
+
+## 📂 规则集目录
+
+我们提供了覆盖 **43 个技术领域** 的规则集,以下按类别分组展示:
+
+### 🖥️ 应用开发
+
+| 领域 | 目录 | 说明 |
+|------|------|------|
+| **前端开发** | [`frontend/`](./rules/frontend/) | React, Vue, Angular, Svelte, SolidJS, TypeScript, 微前端 等 (214 个文件) |
+| **后端开发** | [`backend/`](./rules/backend/) | Node.js, Python, Go, Java, Kotlin, .NET, PHP, Elixir 等 (132 个文件) |
+| **移动开发** | [`mobile/`](./rules/mobile/) | Flutter, React Native, SwiftUI, Android Jetpack Compose (30 个文件) |
+| **数据库** | [`database/`](./rules/database/) | 云原生数据库、时空数据库 |
+| **CMS** | [`cms/`](./rules/cms/) | Drupal 内容管理系统 |
+| **系统编程** | [`systems/`](./rules/systems/) | C++ 现代编程规范 |
+
+### 🤖 AI 与数据
+
+| 领域 | 目录 | 说明 |
+|------|------|------|
+| **AI / 机器学习** | [`ai/`](./rules/ai/) | 计算机视觉、边缘 AI、联邦学习、知识图谱、MLOps、光子神经网络 |
+| **数据科学** | [`data-science/`](./rules/data-science/) | Python 数据处理、Pandas、Matplotlib |
+| **数据工程** | [`data/`](./rules/data/) | 数据仓库、Kafka/Pulsar、Spark/Flink |
+
+### ⚙️ 基础设施与运维
+
+| 领域 | 目录 | 说明 |
+|------|------|------|
+| **DevOps** | [`devops/`](./rules/devops/) | Docker, Kubernetes, CI/CD, Terraform, Serverless, 服务网格, 可观测性 等 (40 个文件) |
+| **云服务** | [`cloud/`](./rules/cloud/) | 中间件 |
+| **边缘计算** | [`edge/`](./rules/edge/) | AI 推理、边缘计算、模型压缩 |
+| **分布式计算** | [`compute/`](./rules/compute/) | 分布式系统 |
+| **网络** | [`network/`](./rules/network/) | 卫星互联网 |
+| **存储** | [`storage/`](./rules/storage/) | DNA 存储 |
+
+### 🔗 专业领域
+
+| 领域 | 目录 | 说明 |
+|------|------|------|
+| **区块链** | [`blockchain/`](./rules/blockchain/) | Solidity, Web3, 智能合约安全, 高级协议 |
+| **安全** | [`security/`](./rules/security/) | 同态加密、隐私计算、安全多方计算、零信任 等 |
+| **IoT / 物联网** | [`iot/`](./rules/iot/) | 数字孪生、嵌入式开发、IoT 平台 |
+| **游戏开发** | [`gaming/`](./rules/gaming/) | 云游戏 |
+| **AR / VR** | [`ar-vr/`](./rules/ar-vr/) | 增强现实 |
+
+### 🔬 前沿科技
+
+| 领域 | 目录 | 说明 |
+|------|------|------|
+| **量子计算** | [`quantum/`](./rules/quantum/) | 量子纠错、超导量子计算 |
+| **机器人** | [`robotics/`](./rules/robotics/) | ROS 机器人操作系统 |
+| **硬件** | [`hardware/`](./rules/hardware/) | 碳基芯片、神经形态芯片、光子计算、超导存储 |
+| **生物科技** | [`bio/`](./rules/bio/) | 生物电子、生物 CPU、生物传感器融合 |
+| **新兴技术** | [`emerging-tech/`](./rules/emerging-tech/) | 生物计算、量子通信、量子计算 |
+| **科学计算** | [`science/`](./rules/science/) | 生物信息学 |
+| **仿真模拟** | [`simulation/`](./rules/simulation/) | 数字孪生仿真 |
+
+### 🏢 平台与自动化
+
+| 领域 | 目录 | 说明 |
+|------|------|------|
+| **平台开发** | [`platform/`](./rules/platform/) | 低代码、无代码、元宇宙 |
+| **工业自动化** | [`industrial/`](./rules/industrial/) | 工业自动化 |
+| **流程自动化** | [`automation/`](./rules/automation/) | RPA 机器人流程自动化 |
+
+### 📋 通用与独立规则集
+
+| 领域 | 目录 | 说明 |
+|------|------|------|
+| **通用规则** | [`general/`](./rules/general/) | 代码规范指南、Git 约定 |
+| **代码规范** | [`code-guidelines-cursorrules-prompt-file/`](./rules/code-guidelines-cursorrules-prompt-file/) | 代码规范提示 |
+| **代码风格** | [`code-style-consistency-cursorrules-prompt-file/`](./rules/code-style-consistency-cursorrules-prompt-file/) | 代码风格一致性 |
+| **结对面试** | [`code-pair-interviews/`](./rules/code-pair-interviews/) | 编程面试助手 |
+| **Convex** | [`convex-cursorrules-prompt-file/`](./rules/convex-cursorrules-prompt-file/) | Convex 后端平台 |
+| **DragonRuby** | [`dragonruby-best-practices-cursorrules-prompt-file/`](./rules/dragonruby-best-practices-cursorrules-prompt-file/) | DragonRuby 游戏引擎最佳实践 |
+| **Git 提交** | [`git-conventional-commit-messages/`](./rules/git-conventional-commit-messages/) | 约定式提交消息 |
+| **测试相关** | [`gherkin-style-testing-cursorrules-prompt-file/`](./rules/gherkin-style-testing-cursorrules-prompt-file/) [`xray-test-case-cursorrules-prompt-file/`](./rules/xray-test-case-cursorrules-prompt-file/) | Gherkin 风格测试、Xray 测试用例 |
+| **工程模板** | [`engineering-ticket-template-cursorrules-prompt-file/`](./rules/engineering-ticket-template-cursorrules-prompt-file/) | 工程工单模板 |
+
+> 📋 完整目录请浏览 [`rules/`](./rules/) 文件夹查看所有规则集。
+
+## 🏗️ 项目结构
+
+```
+awesome-cursorrules-zh/
+├── rules/ # 所有规则集(按技术领域分类)
+│ ├── frontend/ # 前端 (React, Vue, Angular, Svelte ...)
+│ ├── backend/ # 后端 (Node.js, Python, Go, Java ...)
+│ ├── mobile/ # 移动端 (Flutter, React Native ...)
+│ ├── devops/ # DevOps (Docker, K8s, Terraform ...)
+│ ├── ai/ # AI / 机器学习
+│ ├── security/ # 安全
+│ └── ... # 更多领域 (共 43 个分类)
+├── docs/ # 项目文档
+│ ├── getting-started.md # 快速开始指南
+│ ├── best-practices.md # 最佳实践
+│ ├── installation-guide.md # 安装指南
+│ └── troubleshooting.md # 故障排除
+├── .github/ # GitHub 配置
+│ ├── workflows/ # CI/CD 质量检查
+│ ├── ISSUE_TEMPLATE/ # Issue 模板
+│ └── pull_request_template.md
+├── CONTRIBUTING.md # 贡献指南
+├── CODE_OF_CONDUCT.md # 行为准则
+├── CHANGELOG.md # 更新日志
+└── README.md # 本文件
+```
+
+## 💡 使用指南与最佳实践
+
+### 如何选择规则?
+
+- **新项目** — 选择对应技术栈的**完整规则集**,从一开始就建立高标准。例如,使用 `nextjs-typescript` 而不是 `react-basic`。
+- **现有项目** — 从 `general/code-guidelines` 这类**通用规则**开始,逐步引入更具体的规则。
+
+### 如何处理多技术栈项目?
+
+**方法 1:合并规则文件**
+
+```bash
+# 将 React 和 FastAPI 的规则合并为一个文件
+cat rules/frontend/react/react-best-practices/.cursorrules > /path/to/your/project/.cursorrules
+echo "" >> /path/to/your/project/.cursorrules
+cat rules/backend/python/fastapi-best-practices/.cursorrules >> /path/to/your/project/.cursorrules
+```
+
+**方法 2:使用目录特定规则**
+
+在项目根目录放置通用规则,在子目录中放置特定规则。Cursor 会优先使用更深层级的规则。
+
+```
+your-project/
+├── .cursorrules # 通用规则
+├── frontend/
+│ └── .cursorrules # 前端特定规则
+└── backend/
+ └── .cursorrules # 后端特定规则
+```
+
+### 如何与团队协作?
+
+1. **版本控制** — 将 `.cursorrules` 提交到 Git,确保团队使用统一规范。
+2. **文档说明** — 在项目 README 中注明规则来源,方便新成员了解。
+
+### 如何自定义规则?
+
+直接编辑 `.cursorrules` 文件,在末尾添加团队或项目特有的规则:
+
+```
+- 使用团队约定的 API 命名法
+- 所有数据库模型必须包含 created_at 和 updated_at 字段
+```
+
+> 📖 更多详细用法请查阅 [快速开始指南](./docs/getting-started.md) 和 [最佳实践](./docs/best-practices.md)。
+
+## 📊 项目现状与未来计划
-2. **找到并复制规则**
- 浏览 `rules` 目录,找到你需要的规则集(例如 `rules/frontend/react/`),然后将其中的 `.cursorrules` 文件和相关 `.mdc` 文件复制到你的项目根目录。
+| 指标 | 状态 |
+|------|------|
+| **翻译进度** | ✅ 100% 完成 |
+| **质量状态** | ✅ 高质量翻译,已审核 |
+| **最新版本** | v1.5.0 |
+| **技术领域** | 43 个分类 |
+| **规则文件** | 92 个 `.cursorrules` 文件 |
+| **总文件数** | 550+ 个技术文档 |
+| **更新日志** | [CHANGELOG.md](./CHANGELOG.md) |
-3. **在 Cursor 中享受智能编码**
- 打开你的项目,Cursor 将自动加载规则,开始享受为中文优化的 AI 编程体验!
+项目已进入**持续维护和优化阶段**,未来工作重点:
-## 🗺️ 项目路线图与未来计划
+- **同步上游更新** — 定期与 [原项目](https://github.com/PatrickJS/awesome-cursorrules) 保持同步,引入新规则。
+- **质量优化** — 根据社区反馈,持续改进翻译质量和规则的实用性。
+- **文档完善** — 优化使用指南和项目文档,提升用户体验。
-本项目是一个持续发展的开源项目。我们已经完成了第一阶段的核心翻译和结构优化工作,并制定了清晰的未来发展路线图。
+## ❓ 常见问题
-我们诚挚邀请您查看我们的 [**项目待办清单 (PROJECT_TODO.md)**](./PROJECT_TODO.md),在这里您可以了解到我们接下来的翻译目标,并选择您感兴趣的任务参与贡献!
+
+Q: .cursorrules 文件放在哪里?
-## 📊 翻译进度一览
+将 `.cursorrules` 文件放在**项目根目录**下。Cursor 打开项目后会自动检测并加载该文件。
-我们正在根据优先级翻译原项目中的核心规则集。以下是当前主要任务的进度概览,欢迎您认领感兴趣的任务!
+
-| 技术领域 | 状态 | 已完成 / 总计 | 详情 / 待办 |
-| :--- | :---: | :---: | :--- |
-| **Python 生态** | 🟢 **进行中** | `2 / 5` | `fastapi`, `django` 已完成。需要 `flask` 等。 |
-| **前端框架** | 🟡 **待启动** | `0 / 3` | 需要 `angular`, `sveltekit`, `solidjs` 等。 |
-| **Node.js 生态** | 🟡 **待启动** | `0 / 2` | 需要 `express`, `es-module` 指南等。 |
-| **其他后端** | 🟡 **待启动** | `0 / 3` | 需要 `laravel`, `kotlin-springboot`, `elixir` 等。 |
-| **移动开发** | 🟡 **待启动** | `0 / 4` | 需要 `jetpack-compose`, `flutter`, `swiftui`, `react-native`。 |
-| **DevOps & 平台** | 🟡 **待启动** | `0 / 3` | 需要 `github-actions`, `docker`, `kubernetes` 相关。 |
-| **测试** | 🟡 **待启动** | `0 / 3` | 需要 `cypress`, `playwright`, `jest` 等。 |
+
+Q: 规则不生效怎么办?
-> 👉 想要了解更详细的任务列表或认领任务?请查看我们的 [**项目待办清单 (PROJECT_TODO.md)**](./PROJECT_TODO.md)!
+1. 确认 `.cursorrules` 文件在项目根目录(不是仓库根目录)
+2. 重启 Cursor 编辑器
+3. 检查文件编码为 UTF-8
+4. 确保 Cursor 设置中"Use .cursorrules"选项已启用
+
+更多排查方法请参阅 [故障排除指南](./docs/troubleshooting.md)。
+
+
+
+
+Q: 可以同时使用多个规则文件吗?
+
+Cursor 按目录层级查找 `.cursorrules` 文件,子目录的规则会覆盖父目录的规则。你可以利用这个机制为不同子项目设置不同规则:
+
+```
+your-project/
+├── .cursorrules # 通用规则
+├── frontend/
+│ └── .cursorrules # 前端规则(优先于根目录规则)
+└── backend/
+ └── .cursorrules # 后端规则(优先于根目录规则)
+```
+
+
+
+
+Q: 如何选择适合自己项目的规则集?
+
+- **新项目** — 选择对应技术栈的完整规则集,例如 `nextjs-typescript`。
+- **现有项目** — 从 `general/code-guidelines` 通用规则开始,逐步引入特定规则。
+- **多技术栈** — 可以合并多个规则文件或使用目录特定规则。
+
+详细指导请查阅 [最佳实践](./docs/best-practices.md)。
+
+
+
+
+Q: 这些规则只能用于 Cursor 吗?
+
+`.cursorrules` 是 Cursor 编辑器的专有格式。但规则文件本质上是纯文本的编码指南,其中的最佳实践和编码规范**同样适用于**其他 AI 编码助手(如 GitHub Copilot、Windsurf 等),只需按目标工具的格式稍作调整即可。
+
+
+
+
+Q: 如何贡献翻译或改进?
+
+1. Fork 本仓库
+2. 创建分支:`git checkout -b fix/your-improvement`
+3. 进行修改并提交 Pull Request
+
+详情请阅读 [贡献指南](./CONTRIBUTING.md)。
+
+
## 🤝 参与贡献
-我们热烈欢迎各种形式的贡献!无论是校对翻译、提交新规则、还是改进文档,都对我们至关重要。
+我们欢迎各种形式的贡献!
-开始前,请:
-1. 查看 [**翻译进度一览**](#-翻译进度一览) 和 [**项目待办清单**](./PROJECT_TODO.md) 寻找未完成的任务。
-2. 阅读我们的 [**贡献指南 (CONTRIBUTING.md)**](./CONTRIBUTING.md),它详细说明了如何参与项目。
+- **🐛 报告问题** — 发现翻译不准确或规则已过时?请通过 [Issues](https://github.com/LessUp/awesome-cursorrules-zh/issues) 告诉我们。
+- **🔧 改进翻译** — 提交 Pull Request 帮助优化现有内容。
+- **🔄 同步上游** — 帮助项目与 [原版](https://github.com/PatrickJS/awesome-cursorrules) 保持同步。
+- **📝 完善文档** — 改进使用指南、添加使用示例、优化项目文档。
-## ✨ 行为准则
+在开始之前,请阅读 [**贡献指南**](./CONTRIBUTING.md) 和 [**行为准则**](./CODE_OF_CONDUCT.md)。
-为了营造一个开放和友好的社区环境,我们期望所有参与者都能遵守 [**行为准则 (CODE_OF_CONDUCT.md)**](./CODE_OF_CONDUCT.md)。
+## 🐛 遇到问题?
-## 📄 许可证
+请查阅 [**故障排除指南**](./docs/troubleshooting.md),里面包含常见问题的解决方案和诊断工具。
-本项目采用 [MIT 许可证](./LICENSE)授权。
-
-## 🛡️ 质量保障
-- 自动化校验脚本确保翻译一致性
-- 专业术语词典统一技术词汇
-- 严格的PR审核流程
-
-## 👥 社区协作
-欢迎通过 [Issues](.github/ISSUE_TEMPLATE) 认领翻译任务
-
-- Node.js (Express, NestJS)
-- Python (Django, FastAPI)
-- Java (Spring Boot JPA)
-- Go (Gin, Echo)
-- Laravel PHP
-- C++ 现代编程
-- .NET (ABP Framework)
-- Python 数据科学与机器学习
-**🔒 隐私安全**
-- 同态加密增强
-- 安全多方计算
-**☁️ 分布式系统**
-- 云原生数据库
-- 分布式计算框架
-**☁️ 云原生**
-- Kubernetes 全套生态
-- 服务网格 (Service Mesh)
-- 无服务器架构 (Serverless)
-- 中间件服务
-- 服务网格安全
-- 混沌工程
-- 全栈可观测体系
-- 无代码平台
-- RPA自动化
-- 数字孪生
-- 智能合约安全
-- 云游戏开发
-- 元宇宙平台
-- 大数据处理框架
-- 实时流计算平台
-- 基础设施即代码 (IaC)
-- CI/CD 流水线
-- 服务网格 (Service Mesh)
-- 无服务器架构 (Serverless)
-- 数据仓库与湖仓一体
-- 生物信息学
-- 嵌入式开发
-- 物联网平台
-- AI 工程化平台
-- 计算机视觉
-- 增强现实开发
-- 工业自动化
-- 机器人操作系统
-- 微前端架构
-- Web3.0 开发
-- 云原生安全
-- 低代码平台
-- 量子通信
-- 卫星互联网
-
-**中优先级**
-- ⚡ Svelte/SvelteKit
-- 🍎 SwiftUI
-- 🤖 Android Jetpack Compose
-- 🦀 Rust 系统编程
-- 🐳 Docker & Kubernetes
-- 🔧 更多工具链...
-
-[查看完整优先级列表 →](./CONTRIBUTING.md#翻译优先级)
-
-### 🔥 待翻译 (23个)
-
-**最终检查**
-- 超导内存
-- 生物CPU
-**最终优化**
-- 边缘AI推理
-- 隐私计算增强
-**最终优先级**
-- DNA存储优化
-- 光子神经网络
-- 超导计算
-- 生物电子
-- 边缘AI
-- 隐私计算
-- 云原生中间件
-- 服务网格安全
-- 混沌工程
-- 全栈可观测性
-- 无代码平台
-- RPA自动化
-- 数字孪生
-- 智能合约安全
-- 云游戏开发
-- 元宇宙平台
-- 大数据处理框架
-- 实时流计算平台
-- 基础设施即代码 (IaC)
-- CI/CD 流水线
-- 服务网格 (Service Mesh)
-- 无服务器架构 (Serverless)
-- 数据仓库与湖仓一体
-- 生物信息学
-- 嵌入式开发
-- 物联网平台
-- AI 工程化平台
-- 计算机视觉
-- 增强现实开发
-- 工业自动化
-- 机器人操作系统
-- 微前端架构
-- Web3.0 开发
-- 云原生安全
-- 低代码平台
-- 量子通信
-- 卫星互联网
-
-## 使用指南
-
-### 使用技巧
-
-**🎯 选择规则集**
-- 根据项目技术栈选择对应的规则集
-- 优先选择已翻译的规则集以获得更好的中文体验
-- 可以组合多个相关规则集使用
-
-**⚡ 最佳实践**
-- 每个项目使用一个主要的 `.cursorrules` 文件
-- 定期关注项目更新,获取最新规则集
-- 根据团队需求适当调整规则内容
-
-**📚 更多资源**
-- [📋 贡献指南](./CONTRIBUTING.md) - 了解如何参与翻译
-- [📝 更新日志](./CHANGELOG.md) - 查看版本更新记录
-
-## 参与贡献
-
-我们采用标准化的翻译工作流程,欢迎所有开发者参与贡献:
-
-### 快速开始
-1. **Fork 本仓库** 并创建你的功能分支
-2. **选择翻译目标** - 从[高优先级列表](./CONTRIBUTING.md#翻译优先级)中选择未翻译的规则集
-3. **遵循翻译标准** - 查看 [贡献指南](./CONTRIBUTING.md) 了解详细的翻译流程和质量要求
-4. **提交 Pull Request** - 我们会及时审核并提供反馈
-
-### 贡献方式
-- **🌟 翻译新规则集** - 优先翻译高需求技术栈
-- **🔧 改进现有翻译** - 提升翻译质量和准确性
-- **📚 完善文档** - 改进项目文档和使用指南
-- **🐛 报告问题** - 发现问题请及时反馈
-
-### 翻译标准
-- 保持技术术语的准确性和一致性
-- 确保中文表达自然流畅
-- 保留原文的代码示例和格式
-- 遵循项目的翻译术语表
+## 📚 相关文档
----
+| 文档 | 说明 |
+|------|------|
+| [快速开始指南](./docs/getting-started.md) | 从零开始使用规则集的完整教程 |
+| [最佳实践](./docs/best-practices.md) | 规则选择、配置和团队协作的最佳实践 |
+| [安装指南](./docs/installation-guide.md) | 详细的环境安装与配置说明 |
+| [故障排除](./docs/troubleshooting.md) | 常见问题诊断与解决方案 |
+| [贡献指南](./CONTRIBUTING.md) | 参与项目贡献的流程与规范 |
+| [更新日志](./CHANGELOG.md) | 项目版本历史与变更记录 |
-## 致谢
+## � 致谢
感谢 [awesome-cursorrules](https://github.com/PatrickJS/awesome-cursorrules) 原项目提供的优秀基础。
感谢所有为本项目贡献翻译和改进的开发者们!
-## 许可证
+## 📄 许可证
-本项目采用 [MIT 许可证](./LICENSE) 开源。
+本项目采用 [MIT 许可证](./LICENSE) 授权。
---
-**如果这个项目对你有帮助,请给我们一个 ⭐**
+**如果这个项目对你有帮助,请给我们一个 ⭐ Star**
**让更多中文开发者受益于优质的 AI 编程规则!**
-[⬆️ 回到顶部](#awesome-cursor-rules-中文版-)
+[⬆️ 回到顶部](#awesome-cursor-rules-中文版)
diff --git a/docs/getting-started.md b/docs/getting-started.md
index c0a8552..0a0b42b 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -12,7 +12,7 @@
### 1. 克隆仓库
```bash
-git clone https://github.com/your-username/awesome-cursorrules-zh.git
+git clone https://github.com/LessUp/awesome-cursorrules-zh.git
cd awesome-cursorrules-zh
```
@@ -171,9 +171,9 @@ A: Cursor 会按目录层级查找规则文件,子目录的规则会覆盖父
- 查看 [最佳实践](./best-practices.md)
- 了解 [贡献指南](../CONTRIBUTING.md)
-- 浏览 [项目路线图](./roadmap.md)
-- 参与 [社区讨论](https://github.com/your-username/awesome-cursorrules-zh/discussions)
+- 浏览 [安装指南](./installation-guide.md)
+- 参与 [社区讨论](https://github.com/LessUp/awesome-cursorrules-zh/discussions)
---
-🎉 **开始您的 AI 编程之旅吧!** 如有问题,欢迎提交 [Issue](https://github.com/your-username/awesome-cursorrules-zh/issues)。
+🎉 **开始您的 AI 编程之旅吧!** 如有问题,欢迎提交 [Issue](https://github.com/LessUp/awesome-cursorrules-zh/issues)。
diff --git a/docs/github-optimization-guide.md b/docs/github-optimization-guide.md
deleted file mode 100644
index 01bbac0..0000000
--- a/docs/github-optimization-guide.md
+++ /dev/null
@@ -1,216 +0,0 @@
-# GitHub 可见性和搜索排名优化指南
-
-## 🎯 优化目标
-- 提高项目在 GitHub 搜索中的排名
-- 增加项目的发现性和可见性
-- 吸引更多中文开发者参与贡献
-- 建立项目在 Cursor AI 生态中的权威地位
-
-## 📌 GitHub Topics 优化
-
-### 推荐标签组合 (18个)
-
-#### 🔥 核心标签 (6个)
-```
-cursor
-ai-programming
-cursorrules
-chinese
-translation
-awesome-list
-```
-
-#### 💻 技术栈标签 (8个)
-```
-typescript
-react
-vue
-python
-javascript
-nodejs
-frontend
-backend
-```
-
-#### 🛠️ 功能标签 (4个)
-```
-code-quality
-best-practices
-developer-tools
-programming-rules
-```
-
-### 标签设置步骤
-1. 进入仓库设置页面
-2. 在 "About" 部分点击齿轮图标
-3. 在 "Topics" 字段中添加上述标签
-4. 确保仓库描述简洁明了
-
-## 📝 仓库描述优化
-
-### 当前描述建议
-```
-专为中文开发者优化的 Cursor AI 编程规则集合 | Chinese translation of awesome-cursorrules for Cursor AI | 包含 React、Vue、Python、TypeScript 等主流技术栈的最佳实践规则
-```
-
-### 关键要素
-- 包含核心关键词:Cursor AI、中文、编程规则
-- 提及主要技术栈
-- 突出目标用户群体
-- 保持在 350 字符以内
-
-## 🔍 SEO 优化策略
-
-### README 标题优化
-- 主标题包含核心关键词
-- 副标题强调价值主张
-- 使用表情符号增加视觉吸引力
-
-### 关键词密度优化
-- **主要关键词**: Cursor、AI、编程规则、中文、翻译
-- **长尾关键词**: Cursor AI 编程规则、中文开发者、AI 编程助手
-- **技术栈关键词**: React、Vue、TypeScript、Python、JavaScript
-
-### 内容结构优化
-- 使用清晰的标题层级 (H1-H6)
-- 添加目录导航
-- 使用表格和列表提高可读性
-- 包含代码示例和使用说明
-
-## 🚀 项目推广策略
-
-### 1. 中文开发者社区
-- **掘金 (juejin.cn)**: 发布技术文章介绍项目
-- **思否 (segmentfault.com)**: 分享使用经验和最佳实践
-- **CSDN**: 发布详细的使用教程
-- **知乎**: 回答相关问题时推荐项目
-- **V2EX**: 在程序员节点分享项目
-
-### 2. Cursor 相关社区
-- **Cursor 官方论坛**: 分享中文规则集
-- **Discord 社区**: 参与讨论并推广项目
-- **Reddit r/cursor**: 发布项目介绍
-- **GitHub Discussions**: 在相关项目中讨论
-
-### 3. 技术栈特定社区
-- **React 中文社区**: 推广 React 相关规则集
-- **Vue.js 中文社区**: 分享 Vue 规则集
-- **Python 中文社区**: 介绍 Python 规则集
-
-## 📢 推广文案模板
-
-### 社区分享文案
-```
-🎉 分享一个超实用的 Cursor AI 编程规则集合!
-
-专为中文开发者优化的 awesome-cursorrules-zh,包含 50+ 个精心翻译的编程规则集,覆盖 React、Vue、TypeScript、Python 等主流技术栈。
-
-✨ 特色功能:
-- 🎯 专业中文翻译,术语准确自然
-- 🔧 开箱即用,复制即可使用
-- 📈 持续更新,跟随最新趋势
-- 🌟 质量保证,严格审核流程
-
-GitHub: https://github.com/LessUp/awesome-cursorrules-zh
-
-让 AI 编程助手更懂中文开发者的需求!
-```
-
-### 技术文章标题建议
-- "提升 Cursor AI 编程效率:中文开发者专属规则集"
-- "awesome-cursorrules-zh:让 AI 编程助手说中文"
-- "50+ 个 Cursor AI 编程规则集,助力中文开发者提效"
-- "从零开始使用 Cursor AI:中文规则集完全指南"
-
-## 🔗 关联项目策略
-
-### 与原项目建立关联
-1. **在原项目提 Issue**: 建议添加中文翻译链接
-2. **提交 PR**: 在原项目 README 中添加中文版链接
-3. **创建 Discussion**: 在原项目讨论区介绍中文版
-
-### 相关项目互推
-- 寻找其他 Cursor 相关项目进行互推
-- 与中文技术文档翻译项目建立联系
-- 参与 awesome-china 等中文开源项目列表
-
-## 📊 效果监控指标
-
-### GitHub 指标
-- Star 数量增长
-- Fork 数量增长
-- Issue 和 PR 活跃度
-- Traffic 页面访问量
-- Clone 数量
-
-### 搜索排名指标
-- GitHub 搜索 "cursor rules" 排名
-- GitHub 搜索 "cursor 中文" 排名
-- Google 搜索相关关键词排名
-
-### 社区反馈指标
-- 社区分享的点赞和评论数
-- 用户反馈和建议
-- 贡献者数量增长
-
-## 🎯 阶段性目标
-
-### 第一阶段 (1个月)
-- 完成 GitHub Topics 和描述优化
-- 在 3-5 个中文社区分享项目
-- 获得 100+ Stars
-
-### 第二阶段 (3个月)
-- 发布 5+ 篇技术文章
-- 建立与原项目的关联
-- 获得 500+ Stars
-
-### 第三阶段 (6个月)
-- 成为 Cursor 中文社区的权威资源
-- 获得 1000+ Stars
-- 建立活跃的贡献者社区
-
-## 💡 持续优化建议
-
-1. **定期更新内容**: 保持项目活跃度
-2. **收集用户反馈**: 根据反馈优化项目
-3. **参与社区讨论**: 提高项目知名度
-4. **建立品牌形象**: 统一的视觉风格和文案风格
-5. **数据驱动优化**: 根据数据调整策略
-
-## 🚀 立即行动清单
-
-### 第一步:GitHub 设置优化 (今天完成)
-- [ ] 设置仓库 Topics 标签
-- [ ] 优化仓库描述
-- [ ] 检查 README 关键词密度
-- [ ] 添加更多徽章和链接
-
-### 第二步:内容优化 (本周完成)
-- [ ] 优化 README 标题和结构
-- [ ] 添加使用示例和截图
-- [ ] 完善贡献指南
-- [ ] 创建 CHANGELOG.md
-
-### 第三步:社区推广 (本月完成)
-- [ ] 在掘金发布介绍文章
-- [ ] 在 V2EX 分享项目
-- [ ] 在知乎回答相关问题
-- [ ] 联系原项目维护者
-
-### 第四步:持续运营 (长期)
-- [ ] 每周更新翻译进度
-- [ ] 每月发布技术文章
-- [ ] 定期收集用户反馈
-- [ ] 监控和分析数据
-
-## 📞 联系方式
-
-如需协助实施优化方案,请通过以下方式联系:
-- GitHub Issues: 报告问题和建议
-- GitHub Discussions: 参与项目讨论
-- 邮件: [项目维护者邮箱]
-
----
-
-**记住:优质的内容是最好的 SEO,持续的价值输出是最好的推广!** 🌟
diff --git a/docs/glossary.md b/docs/glossary.md
deleted file mode 100644
index 721c71c..0000000
--- a/docs/glossary.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# 术语表
-
-## 通用术语
-| 英文术语 | 中文翻译 | 备注 |
-|-------------------|----------------|--------------------|
-| middleware | 中间件 | |
-| ORM | 对象关系映射 | 全称不翻译 |
-| async/await | 异步/等待 | 保留英文符号 |
-
-## Python特定术语
-| 英文术语 | 中文翻译 |
-|-------------------|----------------|
-| Pydantic | Pydantic验证库 |
-| FastAPI | FastAPI框架 |
diff --git a/docs/promotion-templates.md b/docs/promotion-templates.md
deleted file mode 100644
index 4f224b4..0000000
--- a/docs/promotion-templates.md
+++ /dev/null
@@ -1,237 +0,0 @@
-# 项目推广文案模板
-
-## 🎯 社区分享文案
-
-### 掘金/思否/CSDN 文案
-```markdown
-# 🚀 awesome-cursorrules-zh:专为中文开发者优化的 Cursor AI 编程规则集
-
-## 项目简介
-
-作为一名中文开发者,你是否在使用 Cursor AI 时遇到过这些问题:
-- 英文提示不够直观,理解成本高
-- 技术术语翻译不准确,影响开发效率
-- 缺少针对中文开发习惯的优化
-
-今天给大家推荐一个解决方案:**awesome-cursorrules-zh**
-
-## 🌟 项目特色
-
-✅ **专业翻译**:50+ 个规则集,术语准确、表达自然
-✅ **开箱即用**:复制 `.cursorrules` 文件即可使用
-✅ **持续更新**:跟随原项目更新,保持最新状态
-✅ **质量保证**:标准化翻译流程,严格质量控制
-
-## 📚 技术栈覆盖
-
-- **前端**: React、Vue、TypeScript、Angular
-- **后端**: Node.js、Python、Java、Go
-- **移动端**: Flutter、React Native、SwiftUI
-- **工具链**: Git、Docker、代码规范
-
-## 🚀 快速开始
-
-1. 克隆仓库
-```bash
-git clone https://github.com/LessUp/awesome-cursorrules-zh.git
-```
-
-2. 选择规则集
-```bash
-cp rules/frontend/react/nextjs-basic/.cursorrules ./
-```
-
-3. 在 Cursor 中享受中文优化的 AI 编程体验!
-
-## 🤝 参与贡献
-
-项目采用开放的贡献模式,欢迎所有开发者参与:
-- 翻译新的规则集
-- 改进现有翻译质量
-- 完善项目文档
-
-GitHub: https://github.com/LessUp/awesome-cursorrules-zh
-
-让 AI 编程助手更懂中文开发者的需求!🇨🇳
-```
-
-### V2EX 分享文案
-```
-【分享】awesome-cursorrules-zh - 专为中文开发者优化的 Cursor AI 编程规则集
-
-最近在用 Cursor AI 写代码,发现英文的 .cursorrules 对中文开发者不够友好,于是发现了这个项目。
-
-项目特点:
-- 50+ 个精心翻译的编程规则集
-- 覆盖 React、Vue、Python、TypeScript 等主流技术栈
-- 术语准确,表达自然,符合中文开发习惯
-- 开箱即用,复制文件即可使用
-
-GitHub: https://github.com/LessUp/awesome-cursorrules-zh
-
-有在用 Cursor 的朋友可以试试,确实能提升不少开发效率。
-```
-
-### 知乎回答模板
-```
-推荐一个专门为中文开发者优化的 Cursor AI 规则集:awesome-cursorrules-zh
-
-这个项目解决了中文开发者使用 Cursor AI 时的几个痛点:
-
-1. **语言障碍**:英文规则集理解成本高,这个项目提供了专业的中文翻译
-2. **术语准确性**:技术术语翻译准确,符合中文技术社区的表达习惯
-3. **本土化优化**:针对中文开发者的使用习惯进行了优化
-
-目前已经翻译了 50+ 个规则集,覆盖主流技术栈,质量很高。
-
-使用方法很简单:
-1. 从 GitHub 下载对应的 .cursorrules 文件
-2. 放到项目根目录
-3. 在 Cursor 中享受中文优化的 AI 编程体验
-
-项目地址:https://github.com/LessUp/awesome-cursorrules-zh
-
-强烈推荐给使用 Cursor 的中文开发者!
-```
-
-## 📝 技术文章标题库
-
-### 教程类
-- "Cursor AI 中文优化指南:awesome-cursorrules-zh 完全使用教程"
-- "提升 AI 编程效率:如何使用中文 Cursor 规则集"
-- "从零开始配置 Cursor AI:中文开发者专属指南"
-- "awesome-cursorrules-zh:让 AI 编程助手说中文"
-
-### 经验分享类
-- "使用 awesome-cursorrules-zh 一个月后的真实体验"
-- "中文开发者的 Cursor AI 优化之路"
-- "告别英文困扰:我的 Cursor AI 中文化实践"
-- "awesome-cursorrules-zh 如何提升我的编程效率"
-
-### 技术深度类
-- "深度解析:awesome-cursorrules-zh 的翻译质量保证体系"
-- "开源项目分析:awesome-cursorrules-zh 的技术架构"
-- "AI 编程规则集的本土化实践:awesome-cursorrules-zh 案例研究"
-
-## 🎬 视频内容脚本
-
-### B站/抖音短视频脚本
-```
-【开头】你还在为 Cursor AI 的英文提示发愁吗?
-
-【问题】作为中文开发者,使用英文规则集确实有这些痛点:
-- 理解成本高
-- 术语不准确
-- 效率受影响
-
-【解决方案】今天推荐一个神器:awesome-cursorrules-zh
-
-【演示】
-1. 下载中文规则集
-2. 复制到项目目录
-3. 在 Cursor 中体验中文优化的 AI 编程
-
-【效果对比】
-- 之前:英文提示,理解困难
-- 现在:中文提示,一目了然
-
-【结尾】50+ 个规则集,覆盖主流技术栈,GitHub 搜索 awesome-cursorrules-zh
-
-让 AI 编程助手更懂中文开发者!
-```
-
-## 📧 邮件推广模板
-
-### 给技术博主/KOL 的邮件
-```
-主题:推荐一个优质的开源项目:awesome-cursorrules-zh
-
-您好,
-
-我是 awesome-cursorrules-zh 项目的关注者,这是一个专为中文开发者优化的 Cursor AI 编程规则集合。
-
-项目特点:
-- 50+ 个精心翻译的规则集
-- 覆盖主流技术栈
-- 高质量翻译,术语准确
-- 活跃的社区贡献
-
-考虑到您在技术社区的影响力,想邀请您体验并分享这个项目。如果您觉得有价值,希望能在您的平台上推荐给更多中文开发者。
-
-项目地址:https://github.com/LessUp/awesome-cursorrules-zh
-
-感谢您的时间,期待您的反馈!
-
-最好的祝愿,
-[您的姓名]
-```
-
-## 🔗 原项目关联策略
-
-### 给原项目提 Issue 的模板
-```
-标题:Add Chinese translation link to README
-
-Hi @PatrickJS,
-
-I've been working on a Chinese translation of awesome-cursorrules called "awesome-cursorrules-zh".
-
-The project features:
-- 50+ professionally translated rule sets
-- High-quality Chinese localization
-- Active community contributions
-- Standardized translation workflow
-
-Repository: https://github.com/LessUp/awesome-cursorrules-zh
-
-Would it be possible to add a link to the Chinese version in the README? This would help Chinese developers discover and benefit from these excellent rules.
-
-Thank you for creating such a valuable resource!
-```
-
-### 在原项目 Discussions 中的介绍
-```
-标题:Introducing awesome-cursorrules-zh - Chinese Translation
-
-Hello everyone!
-
-I'm excited to share awesome-cursorrules-zh, a Chinese translation project for this amazing repository.
-
-🎯 **Project Goals:**
-- Make Cursor rules accessible to Chinese developers
-- Provide high-quality, professional translations
-- Build an active Chinese community around Cursor AI
-
-📊 **Current Progress:**
-- 50+ rule sets translated
-- Covers major tech stacks (React, Vue, Python, TypeScript, etc.)
-- Standardized translation workflow
-- Quality assurance process
-
-🔗 **Repository:** https://github.com/LessUp/awesome-cursorrules-zh
-
-We welcome contributions from both Chinese and international developers. If you're interested in helping Chinese developers benefit from these excellent rules, please check out our project!
-
-Thank you @PatrickJS for creating such a valuable resource that inspired this translation effort.
-```
-
-## 📊 推广效果追踪
-
-### 关键指标
-- GitHub Stars 增长
-- Fork 数量变化
-- Traffic 访问量
-- 社区分享的互动数据
-- 搜索排名变化
-
-### 推广渠道效果记录表
-| 渠道 | 发布时间 | 链接 | 浏览量 | 点赞数 | 评论数 | 转化率 |
-|------|----------|------|--------|--------|--------|--------|
-| 掘金 | | | | | | |
-| V2EX | | | | | | |
-| 知乎 | | | | | | |
-| CSDN | | | | | | |
-
----
-
-**记住:真诚分享价值,而不是单纯推广产品!** 🌟
diff --git a/docs/roadmap.md b/docs/roadmap.md
deleted file mode 100644
index 13497e0..0000000
--- a/docs/roadmap.md
+++ /dev/null
@@ -1,115 +0,0 @@
-# 项目路线图 🗺️
-
-## 🎯 项目愿景
-
-成为中文开发者首选的 Cursor AI 编程规则集合,提供最全面、最高质量的中文技术栈规则。
-
-## 📅 发展阶段
-
-### 🚀 第一阶段:MVP 发布 (已完成)
-- ✅ 项目结构设计和实施
-- ✅ 29个主流技术栈规则集翻译
-- ✅ 核心文档和贡献指南
-- ✅ GitHub 仓库建立和配置
-
-### 🔄 第二阶段:社区建设 (进行中)
-- [ ] 社区推广和用户获取
-- [ ] 收集用户反馈和改进建议
-- [ ] 建立贡献者社区
-- [ ] 完善文档和使用指南
-
-### 📈 第三阶段:内容扩展 (2024 Q1)
-- [ ] 翻译剩余 96 个规则集
-- [ ] 添加中文特色技术栈规则
-- [ ] 创建使用示例和最佳实践
-- [ ] 建立质量保证流程
-
-### 🌟 第四阶段:生态完善 (2024 Q2)
-- [ ] 开发配套工具和插件
-- [ ] 集成 CI/CD 自动化
-- [ ] 建立社区治理机制
-- [ ] 国际化支持
-
-## 📊 翻译优先级
-
-### 🔥 高优先级 (4周内)
-- **Python Django** - Web 开发框架
-- **Java Spring Boot** - 企业级开发
-- **Go 语言规则** - 云原生开发
-- **Angular 框架** - 前端框架
-
-### ⭐ 中优先级 (8周内)
-- **Rust 语言** - 系统编程
-- **Flutter/Dart** - 跨平台移动开发
-- **PHP Laravel** - Web 开发
-- **Ruby on Rails** - Web 开发
-
-### 📝 低优先级 (12周内)
-- **Kotlin** - Android 开发
-- **Swift** - iOS 开发
-- **Scala** - 函数式编程
-- **其他小众技术栈**
-
-## 🎯 里程碑
-
-### 里程碑 1: 社区启动 🚀
-- **目标**: 100+ GitHub Stars
-- **时间**: 2024年1月
-- **关键指标**:
- - 社区文章阅读 5000+
- - 活跃贡献者 5+
- - 用户反馈 20+
-
-### 里程碑 2: 内容丰富 📚
-- **目标**: 50+ 完整翻译规则集
-- **时间**: 2024年2月
-- **关键指标**:
- - 覆盖主流技术栈 80%
- - 翻译质量评分 4.5+
- - 使用示例 20+
-
-### 里程碑 3: 生态成熟 🌟
-- **目标**: 成为中文开发者首选
-- **时间**: 2024年3月
-- **关键指标**:
- - GitHub Stars 500+
- - 月活跃用户 1000+
- - 社区贡献者 20+
-
-## 🤝 如何参与
-
-### 对于开发者
-- 🌐 **翻译贡献**: 参与规则集翻译工作
-- 🐛 **问题反馈**: 报告 Bug 和改进建议
-- 📝 **文档改进**: 完善使用指南和示例
-- 💡 **功能建议**: 提出新功能想法
-
-### 对于社区
-- ⭐ **Star 支持**: 给项目点 Star
-- 📢 **推广分享**: 在社区分享项目
-- 💬 **讨论交流**: 参与 Issues 讨论
-- 🎓 **教程创作**: 创建使用教程
-
-## 📈 成功指标
-
-### 技术指标
-- **翻译完成度**: 目标 80% (100+ 规则集)
-- **翻译质量**: 用户评分 4.5+
-- **更新频率**: 每周至少 2 个新规则集
-- **错误率**: 低于 5%
-
-### 社区指标
-- **GitHub Stars**: 500+
-- **Fork 数量**: 100+
-- **贡献者数量**: 20+
-- **Issue 响应时间**: 24小时内
-
-### 使用指标
-- **月活跃用户**: 1000+
-- **下载/克隆次数**: 5000+
-- **社区文章阅读**: 10000+
-- **用户满意度**: 90%+
-
----
-
-💡 **想要参与?** 查看我们的 [贡献指南](../CONTRIBUTING.md) 开始贡献!
diff --git a/docs/translation-progress.md b/docs/translation-progress.md
deleted file mode 100644
index 6620bd7..0000000
--- a/docs/translation-progress.md
+++ /dev/null
@@ -1,214 +0,0 @@
-# 翻译进度跟踪 📊
-
-本文档跟踪 Awesome Cursor Rules 中文版的翻译进度和计划。
-
-## 📈 总体进度
-
-### 当前状态 (v1.0.0)
-- **已完成翻译**: 29 个规则集
-- **翻译文件数**: 155+ 个
-- **完成度**: ~23% (29/125 原始规则集)
-- **质量状态**: 高质量翻译,已审核
-
-### 目标 (v2.0.0)
-- **目标翻译**: 80+ 个规则集
-- **预计完成**: 2024年Q2
-- **质量目标**: 保持高质量标准
-
-## 🎯 翻译优先级
-
-### 🔥 高优先级 (急需翻译)
-这些是中文开发者最常用的技术栈:
-
-#### 后端框架
-- [ ] **Python Django** - Web 开发主流框架
-- [ ] **Java Spring Boot** - 企业级开发标准
-- [ ] **Go 语言规则** - 云原生开发热门
-- [ ] **Laravel (PHP)** - PHP 主流框架
-
-#### 前端框架
-- [ ] **Angular** - 企业级前端框架
-- [ ] **Svelte/SvelteKit** - 现代前端框架
-- [ ] **Solid.js** - 高性能前端框架
-
-#### 移动开发
-- [ ] **Flutter/Dart** - 跨平台移动开发
-- [ ] **SwiftUI** - iOS 原生开发
-- [ ] **Android Jetpack Compose** - Android 现代开发
-
-### ⭐ 中优先级 (计划翻译)
-这些技术栈有一定用户群体:
-
-#### 系统编程
-- [ ] **Rust 语言** - 系统编程新星
-- [ ] **Go 后端最佳实践** - 微服务开发
-- [ ] **Elixir/Phoenix** - 高并发系统
-
-#### 数据科学
-- [ ] **Python 数据科学** - 机器学习工具链
-- [ ] **PyTorch/TensorFlow** - 深度学习框架
-- [ ] **Pandas/NumPy** - 数据处理工具
-
-#### 云原生
-- [ ] **Kubernetes** - 容器编排
-- [ ] **Docker** - 容器化部署
-- [ ] **Terraform** - 基础设施即代码
-
-### 📋 低优先级 (后续考虑)
-这些是小众或特定场景的技术栈:
-
-- [ ] **WebAssembly** - Web 高性能计算
-- [ ] **Unity C#** - 游戏开发
-- [ ] **Tauri** - 桌面应用开发
-- [ ] **DragonRuby** - 游戏开发
-- [ ] **Plasticode** - 特定领域语言
-
-## ✅ 已完成翻译
-
-### 前端开发 (18个)
-#### React 生态系统 (13个)
-- ✅ Next.js + TypeScript 基础配置
-- ✅ Next.js 14 + SEO 优化
-- ✅ Next.js + Tailwind CSS
-- ✅ Next.js + Supabase 集成
-- ✅ React 组件开发最佳实践
-- ✅ React + TypeScript 规范
-- ✅ React + Chakra UI 样式指南
-- ✅ React + Styled Components
-- ✅ React + MobX 状态管理
-- ✅ React + GraphQL Apollo Client
-- ✅ React Native Expo 移动开发
-- ✅ Next.js UI 开发规范
-- ✅ Next.js + React + TypeScript 全栈
-
-#### Vue 生态系统 (2个)
-- ✅ Vue 3 Composition API 开发规范
-- ✅ Nuxt 3 全栈开发指南
-
-#### TypeScript 专项 (3个)
-- ✅ TypeScript 编码约定和最佳实践
-- ✅ TypeScript + Vite + Tailwind CSS
-- ✅ TypeScript + Axios HTTP 客户端
-
-### 后端开发 (6个)
-#### Node.js 生态 (3个)
-- ✅ Node.js + Express + MongoDB 全栈
-- ✅ TypeScript + NestJS 企业级框架
-- ✅ Node.js + MongoDB 基础开发
-
-#### Python 生态 (1个)
-- ✅ Python FastAPI 现代 API 开发
-
-#### .NET 生态 (1个)
-- ✅ ASP.NET ABP 框架
-
-#### C++ (1个)
-- ✅ C++ 现代编程规范
-
-### 移动端开发 (2个)
-- ✅ React Native Expo 跨平台开发
-- ✅ iOS UIKit 原生开发
-
-### 区块链开发 (1个)
-- ✅ Solidity Foundry 智能合约开发
-
-### CMS 开发 (1个)
-- ✅ Drupal 11 内容管理系统
-
-### 通用工具 (2个)
-- ✅ Git 约定式提交规范
-- ✅ 通用编程最佳实践
-
-## 📅 翻译计划
-
-### 2024年1月 (v1.1.0)
-**目标**: 新增 8 个高优先级规则集
-- Python Django 最佳实践
-- Java Spring Boot 开发规范
-- Go 语言编程指南
-- Angular TypeScript 开发
-- Flutter/Dart 跨平台开发
-- Laravel PHP 框架
-- SwiftUI iOS 开发
-- Android Jetpack Compose
-
-### 2024年2月 (v1.2.0)
-**目标**: 新增 10 个中优先级规则集
-- Rust 系统编程
-- Python 数据科学工具链
-- Kubernetes 云原生开发
-- Svelte/SvelteKit 前端框架
-- Elixir/Phoenix 高并发系统
-- Go 微服务最佳实践
-- Docker 容器化开发
-- PyTorch 深度学习
-- Solid.js 高性能前端
-- Terraform 基础设施
-
-### 2024年3月 (v1.3.0)
-**目标**: 完善生态和工具链
-- 测试框架规则集
-- CI/CD 最佳实践
-- 代码质量工具
-- 性能优化指南
-- 安全开发规范
-
-## 🤝 贡献翻译
-
-### 如何参与
-1. **选择规则集**: 从优先级列表中选择未翻译的规则集
-2. **创建 Issue**: 在 GitHub 上创建翻译任务 Issue
-3. **Fork 仓库**: Fork 项目到您的 GitHub 账户
-4. **翻译内容**: 按照翻译标准进行翻译
-5. **提交 PR**: 提交 Pull Request 等待审核
-
-### 翻译标准
-- 保持 YAML front matter 完整
-- 技术术语使用标准中文翻译
-- 保留英文 API 名称和代码示例
-- 确保描述准确适合中文开发者
-- 遵循项目的文件命名规范
-
-### 质量要求
-- 翻译准确性 > 95%
-- 中文表达自然流畅
-- 技术术语标准化
-- 代码示例可运行
-- 文档结构完整
-
-## 📊 统计数据
-
-### 按技术领域分布
-| 领域 | 已完成 | 计划中 | 总计 | 完成率 |
-|------|--------|--------|------|--------|
-| 前端开发 | 18 | 12 | 30 | 60% |
-| 后端开发 | 6 | 15 | 21 | 29% |
-| 移动开发 | 2 | 8 | 10 | 20% |
-| 区块链 | 1 | 3 | 4 | 25% |
-| 数据科学 | 0 | 6 | 6 | 0% |
-| 云原生 | 0 | 8 | 8 | 0% |
-| 系统编程 | 1 | 4 | 5 | 20% |
-| 通用工具 | 2 | 5 | 7 | 29% |
-
-### 按优先级分布
-- **高优先级**: 8/20 (40% 完成)
-- **中优先级**: 15/35 (43% 完成)
-- **低优先级**: 6/70 (9% 完成)
-
-## 🎯 质量保证
-
-### 审核流程
-1. **自动检查**: GitHub Actions 自动验证格式
-2. **人工审核**: 维护者审核翻译质量
-3. **社区反馈**: 收集用户使用反馈
-4. **持续改进**: 根据反馈优化翻译
-
-### 质量指标
-- 翻译准确率: 目标 > 95%
-- 用户满意度: 目标 > 90%
-- 错误报告率: 目标 < 5%
-- 更新响应时间: 目标 < 48小时
-
----
-
-💡 **想要参与翻译?** 查看我们的 [贡献指南](../CONTRIBUTING.md) 开始贡献!
diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md
index 41d8404..1177e05 100644
--- a/docs/troubleshooting.md
+++ b/docs/troubleshooting.md
@@ -121,6 +121,36 @@ ls -lh .cursorrules
- 避免过于复杂的规则
- 定期清理 Cursor 缓存
+### 6. 翻译问题
+
+#### 技术术语不一致
+**问题描述**:相同术语在不同文件中有不同翻译
+**解决方案**:
+1. 确保使用统一的术语翻译,专有名词保留英文(如 React、Vue、Docker)
+2. 参考 [CONTRIBUTING.md](../CONTRIBUTING.md) 中的翻译质量标准
+3. 手动检查并修正不一致的术语
+
+#### 代码示例格式错误
+**问题描述**:翻译后代码缩进或格式破坏
+**解决方案**:
+1. 使用 Markdown 代码块标识符指定语言类型(如 \`\`\`python)
+2. 检查代码块内的缩进是否被意外破坏
+3. 确保翻译时未修改代码块内容
+
+#### 长句表达不清
+**问题描述**:英文长句直译导致中文晦涩
+**解决方案**:
+1. 拆分长句为多个短句
+2. 调整语序符合中文习惯
+3. 保留技术准确性的前提下优化表达
+```markdown
+# 不佳示例
+当组件被渲染时,状态更新将触发重新渲染
+
+# 优化后
+组件渲染时,状态更新会触发重新渲染
+```
+
## 🔍 诊断工具
### 1. 规则文件检查脚本
@@ -175,8 +205,8 @@ except Exception as e:
## 🆘 获取帮助
### 1. 社区支持
-- 📝 [提交 Issue](https://github.com/your-username/awesome-cursorrules-zh/issues)
-- 💬 [社区讨论](https://github.com/your-username/awesome-cursorrules-zh/discussions)
+- 📝 [提交 Issue](https://github.com/LessUp/awesome-cursorrules-zh/issues)
+- 💬 [社区讨论](https://github.com/LessUp/awesome-cursorrules-zh/discussions)
- 📚 [查看文档](./getting-started.md)
### 2. 问题报告模板
diff --git a/rules/backend/java/git-conventional-commit-messages/git-conventional-commit-messages/.cursorrules b/rules/backend/java/git-conventional-commit-messages/git-conventional-commit-messages/.cursorrules
index ecd5e1f..352654e 100644
--- a/rules/backend/java/git-conventional-commit-messages/git-conventional-commit-messages/.cursorrules
+++ b/rules/backend/java/git-conventional-commit-messages/git-conventional-commit-messages/.cursorrules
@@ -1,45 +1,54 @@
-Use the Conventional Commit Messages specification to generate commit messages
+使用 Conventional Commit Messages 规范生成提交消息
-The commit message should be structured as follows:
+提交消息应按以下结构组织:
```
-[optional scope]:
+[可选范围]: <描述>
-[optional body]
+[可选正文]
-[optional footer(s)]
+[可选页脚]
```
--------------------------------
-The commit contains the following structural elements, to communicate intent to the consumers of your library:
-
- - fix: a commit of the type fix patches a bug in your codebase (this correlates with PATCH in Semantic Versioning).
- - feat: a commit of the type feat introduces a new feature to the codebase (this correlates with MINOR in Semantic Versioning).
- - BREAKING CHANGE: a commit that has a footer BREAKING CHANGE:, or appends a ! after the type/scope, introduces a breaking API change (correlating with MAJOR in Semantic Versioning). A BREAKING CHANGE can be part of commits of any type.
- - types other than fix: and feat: are allowed, for example @commitlint/config-conventional (based on the Angular convention) recommends build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, and others.
- - footers other than BREAKING CHANGE: may be provided and follow a convention similar to git trailer format.
- - Additional types are not mandated by the Conventional Commits specification, and have no implicit effect in Semantic Versioning (unless they include a BREAKING CHANGE). A scope may be provided to a commit’s type, to provide additional contextual information and is contained within parenthesis, e.g., feat(parser): add ability to parse arrays.
-
-
-
-### Specification Details
-
-The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.
-
-Commits MUST be prefixed with a type, which consists of a noun, feat, fix, etc., followed by the OPTIONAL scope, OPTIONAL !, and REQUIRED terminal colon and space.
-The type feat MUST be used when a commit adds a new feature to your application or library.
-The type fix MUST be used when a commit represents a bug fix for your application.
-A scope MAY be provided after a type. A scope MUST consist of a noun describing a section of the codebase surrounded by parenthesis, e.g., fix(parser):
-A description MUST immediately follow the colon and space after the type/scope prefix. The description is a short summary of the code changes, e.g., fix: array parsing issue when multiple spaces were contained in string.
-A longer commit body MAY be provided after the short description, providing additional contextual information about the code changes. The body MUST begin one blank line after the description.
-A commit body is free-form and MAY consist of any number of newline separated paragraphs.
-One or more footers MAY be provided one blank line after the body. Each footer MUST consist of a word token, followed by either a : or # separator, followed by a string value (this is inspired by the git trailer convention).
-A footer’s token MUST use - in place of whitespace characters, e.g., Acked-by (this helps differentiate the footer section from a multi-paragraph body). An exception is made for BREAKING CHANGE, which MAY also be used as a token.
-A footer’s value MAY contain spaces and newlines, and parsing MUST terminate when the next valid footer token/separator pair is observed.
-Breaking changes MUST be indicated in the type/scope prefix of a commit, or as an entry in the footer.
-If included as a footer, a breaking change MUST consist of the uppercase text BREAKING CHANGE, followed by a colon, space, and description, e.g., BREAKING CHANGE: environment variables now take precedence over config files.
-If included in the type/scope prefix, breaking changes MUST be indicated by a ! immediately before the :. If ! is used, BREAKING CHANGE: MAY be omitted from the footer section, and the commit description SHALL be used to describe the breaking change.
-Types other than feat and fix MAY be used in your commit messages, e.g., docs: update ref docs.
-The units of information that make up Conventional Commits MUST NOT be treated as case sensitive by implementors, with the exception of BREAKING CHANGE which MUST be uppercase.
-BREAKING-CHANGE MUST be synonymous with BREAKING CHANGE, when used as a token in a footer.
\ No newline at end of file
+提交包含以下结构元素,用于向库的消费者传达意图:
+
+ - `fix`: `fix` 类型的提交修补了代码库中的错误(这与语义化版本控制中的 `PATCH` 相关)。
+ - `feat`: `feat` 类型的提交向代码库引入了新功能(这与语义化版本控制中的 `MINOR` 相关)。
+ - `BREAKING CHANGE`: 包含页脚 `BREAKING CHANGE:` 或在类型/范围后附加 `!` 的提交,引入了破坏性 API 更改(与语义化版本控制中的 `MAJOR` 相关)。`BREAKING CHANGE` 可以是任何类型提交的一部分。
+ - 允许使用 `fix:` 和 `feat:` 之外的其他类型,例如 `@commitlint/config-conventional`(基于 Angular 约定)推荐 `build:`、`chore:`、`ci:`、`docs:`、`style:`、`refactor:`、`perf:`、`test:` 等。
+ - 除了 `BREAKING CHANGE: ` 之外的页脚可以提供,并遵循类似于 git trailer 格式的约定。
+ - Conventional Commits 规范不强制要求其他类型,并且它们在语义化版本控制中没有隐式影响(除非它们包含 `BREAKING CHANGE`)。可以为提交类型提供一个范围,以提供额外的上下文信息,并包含在括号中,例如 `feat(parser): add ability to parse arrays`。
+
+
+
+### 规范详情
+
+本文档中的关键词“MUST”(必须)、“MUST NOT”(不得)、“REQUIRED”(必需)、“SHALL”(应)、“SHALL NOT”(不应)、“SHOULD”(应该)、“SHOULD NOT”(不应该)、“RECOMMENDED”(推荐)、“MAY”(可以)和“OPTIONAL”(可选)应按 RFC 2119 中的描述进行解释。
+
+提交必须以类型为前缀,类型由名词(如 `feat`、`fix` 等)组成,后跟可选范围、可选 `!`,以及必需的末尾冒号和空格。
+当提交添加新功能时,必须使用 `feat` 类型。
+紧跟在类型/范围前缀后的冒号和空格之后。描述是对代码更改的简短总结,例如 `fix: array parsing issue when multiple spaces were contained in string`。
+
+可以在简短描述之后提供更长的提交正文,提供有关代码更改的额外上下文信息。正文必须在描述之后空一行开始。
+
+提交正文是自由格式的,可以由任意数量的以换行符分隔的段落组成。
+
+可以在正文之后空一行提供一个或多个页脚。每个页脚必须由一个单词标记组成,后跟 `: ` 或 ` #` 分隔符,再后跟一个字符串值(这受到 git trailer 约定的启发)。
+
+页脚的标记必须使用 `-` 代替空白字符,例如 `Acked-by`(这有助于区分页脚部分和多段正文)。`BREAKING CHANGE` 是一个例外,它也可以用作标记。
+
+页脚的值可以包含空格和换行符,并且解析必须在观察到下一个有效的页脚标记/分隔符对时终止。
+
+破坏性更改必须在提交的类型/范围前缀中指示,或作为页脚中的条目。
+
+如果作为页脚包含,破坏性更改必须由大写文本 `BREAKING CHANGE` 组成,后跟冒号、空格和描述,例如 `BREAKING CHANGE: environment variables now take precedence over config files`。
+
+如果包含在类型/范围前缀中,破坏性更改必须在 `:` 之前立即用 `!` 指示。如果使用 `!`,则可以省略页脚部分的 `BREAKING CHANGE:`,并且提交描述应用于描述破坏性更改。
+
+除了 `feat` 和 `fix` 之外的类型也可以用于您的提交消息中,例如 `docs: update ref docs`。
+
+组成 Conventional Commits 的信息单元不得被实现者视为大小写敏感,但 `BREAKING CHANGE` 必须大写。
+
+当在页脚中用作标记时,`BREAKING-CHANGE` 必须与 `BREAKING CHANGE` 同义。
diff --git a/rules/backend/nodejs/fullstack-mern-guide/admin-interface-rule.mdc b/rules/backend/nodejs/fullstack-mern-guide/admin-interface-rule.mdc
index a2b6bbc..a28a4f2 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/admin-interface-rule.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/admin-interface-rule.mdc
@@ -1,8 +1,34 @@
---
-description:
-globs:
+description: 管理员界面规则
+globs: []
alwaysApply: false
---
+# 管理员界面规则
+本规则集定义了全栈 MERN 指南中管理员界面的设计和实现规范。
+## 1. 权限管理
+
+- 管理员界面必须实现严格的权限控制,确保只有授权用户才能访问敏感功能。
+- 采用基于角色的访问控制(RBAC)模型,为不同管理角色分配相应的权限。
+
+## 2. 用户体验 (UX)
+
+- 管理员界面应提供直观、易用的操作流程,减少学习成本。
+- 关键操作应有明确的反馈机制,如成功提示、错误警告等。
+
+## 3. 数据可视化
+
+- 对于重要数据,应提供清晰、可理解的可视化图表,帮助管理员快速洞察系统状态。
+- 支持数据筛选、排序和搜索功能,方便管理员查找特定信息。
+
+## 4. 安全性
+
+- 所有管理员操作都应进行日志记录,以便审计和追踪。
+- 敏感操作(如用户删除、权限修改)应要求二次确认或多因素认证。
+
+## 5. 可扩展性
+
+- 管理员界面应采用模块化设计,便于未来功能扩展和维护。
+- 遵循一致的编码风格和设计模式。
diff --git a/rules/backend/nodejs/fullstack-mern-guide/entry-creation-rule.mdc b/rules/backend/nodejs/fullstack-mern-guide/entry-creation-rule.mdc
index a2b6bbc..071e7b7 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/entry-creation-rule.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/entry-creation-rule.mdc
@@ -1,8 +1,41 @@
---
-description:
-globs:
+description: 条目创建规则
+globs: []
alwaysApply: false
---
+# 条目创建规则
+本规则集定义了全栈 MERN 指南中数据条目创建的规范和最佳实践。
+
+## 1. 数据验证
+
+- 所有用户输入数据在存储到数据库之前必须进行严格的服务器端验证。
+- 验证规则应包括数据类型、格式、长度、范围和业务逻辑校验。
+- 对于客户端验证,应提供即时反馈,但服务器端验证是必不可少的安全措施。
+
+## 2. 数据完整性
+
+- 确保关联数据的完整性,例如,当创建新条目时,所有相关的外键引用必须有效。
+- 考虑使用事务(transactions)来保证多步骤数据创建操作的原子性。
+
+## 3. 唯一性约束
+
+- 对于需要唯一性的字段(如用户名、电子邮件),在创建条目时必须进行唯一性检查。
+- 数据库层面应设置唯一索引以强制执行此约束。
+
+## 4. 默认值与可选字段
+
+- 明确定义每个字段是否为必需或可选。
+- 为可选字段提供合理的默认值,以简化数据创建过程。
+
+## 5. 错误处理与反馈
+
+- 当数据创建失败时,应向用户提供清晰、具体的错误信息,帮助其理解问题并进行修正。
+- 记录所有数据创建失败的日志,以便后续分析和调试。
+
+## 6. 安全性考虑
+
+- 避免直接将用户输入插入到数据库查询中,防止 SQL 注入(或其他注入攻击)。使用参数化查询或 ORM。
+- 对敏感数据进行加密存储,即使数据库被泄露也能保护数据安全。
diff --git a/rules/backend/nodejs/fullstack-mern-guide/frontend-tech-stack.mdc b/rules/backend/nodejs/fullstack-mern-guide/frontend-tech-stack.mdc
index a2b6bbc..670fb17 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/frontend-tech-stack.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/frontend-tech-stack.mdc
@@ -1,8 +1,43 @@
---
-description:
-globs:
+description: 前端技术栈
+globs: []
alwaysApply: false
---
+# 前端技术栈
+本规则集定义了全栈 MERN 指南中推荐的前端技术栈及其使用规范。
+## 1. React.js
+
+- **核心库**: 使用 React.js 作为构建用户界面的核心库。
+- **组件化**: 强调组件化开发,将 UI 拆分为独立、可复用的组件。
+- **状态管理**: 推荐使用 Context API 或 Redux(对于复杂应用)进行全局状态管理。
+- **路由**: 使用 React Router 进行客户端路由管理。
+
+## 2. Next.js (可选)
+
+- **SSR/SSG**: 对于需要服务器端渲染 (SSR) 或静态站点生成 (SSG) 的应用,推荐使用 Next.js。
+- **文件系统路由**: 利用 Next.js 的文件系统路由简化路由配置。
+- **API 路由**: 可以使用 Next.js 的 API 路由来构建轻量级后端。
+
+## 3. CSS 框架/库
+
+- **CSS-in-JS**: 推荐使用 Styled Components 或 Emotion 进行组件级样式管理。
+- **CSS 预处理器**: 如果需要,可以使用 Sass 或 Less。
+- **UI 组件库**: 可以考虑使用 Ant Design、Material-UI 或 Chakra UI 等成熟的 UI 组件库以加速开发。
+
+## 4. JavaScript/TypeScript
+
+- **语言**: 优先使用 TypeScript 进行开发,以提高代码质量和可维护性。
+- **ESLint/Prettier**: 配置 ESLint 和 Prettier 进行代码风格检查和格式化,确保代码一致性。
+
+## 5. 构建工具
+
+- **Webpack/Vite**: 通常由 React 或 Next.js 脚手架自动配置,无需手动干预。
+- **包管理器**: 使用 npm 或 Yarn 进行依赖管理。
+
+## 6. 部署
+
+- **静态部署**: 对于纯前端应用,可以使用 Netlify、Vercel 或 GitHub Pages 进行部署。
+- **SSR 部署**: 对于 Next.js 应用,推荐使用 Vercel 或自定义 Node.js 服务器部署。
diff --git a/rules/backend/nodejs/fullstack-mern-guide/payment-tracking-rule.mdc b/rules/backend/nodejs/fullstack-mern-guide/payment-tracking-rule.mdc
index a2b6bbc..5cef95a 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/payment-tracking-rule.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/payment-tracking-rule.mdc
@@ -1,8 +1,35 @@
---
-description:
-globs:
+description: 支付追踪规则
+globs: []
alwaysApply: false
---
+# 支付追踪规则
+本规则集定义了全栈 MERN 指南中支付追踪的规范和最佳实践,确保支付流程的透明度和可审计性。
+## 1. 支付状态管理
+
+- **清晰的支付状态**: 定义明确的支付状态流,例如:`待支付` -> `支付中` -> `支付成功` / `支付失败` / `已退款`。
+- **状态更新**: 支付状态应通过可靠的机制(如支付网关的回调通知)进行更新,并记录每次状态变更的时间和操作者。
+
+## 2. 交易记录
+
+- **详细的交易信息**: 记录每笔支付交易的详细信息,包括交易ID、金额、货币、支付方式、支付时间、用户ID等。
+- **支付网关响应**: 完整记录支付网关返回的所有信息,以便后续核对和问题排查。
+
+## 3. 异常处理与重试机制
+
+- **支付失败处理**: 对于支付失败的交易,应有明确的错误码和错误信息,并提供用户友好的提示。
+- **重试策略**: 对于临时性网络问题或支付网关错误,可以实现幂等的重试机制。
+
+## 4. 对账与审计
+
+- **定期对账**: 系统应支持与支付网关进行定期对账,核对交易记录的一致性。
+- **可审计日志**: 所有支付相关的操作和状态变更都应记录详细日志,便于审计和追踪。
+
+## 5. 安全性
+
+- **敏感信息保护**: 绝不存储用户的完整支付卡信息。只存储支付网关返回的令牌或部分信息。
+- **数据加密**: 传输和存储所有支付相关数据时,应使用强加密措施。
+- **幂等性**: 确保支付请求的幂等性,避免重复扣款。
diff --git a/rules/backend/nodejs/fullstack-mern-guide/request-and-entry-tracking-rule.mdc b/rules/backend/nodejs/fullstack-mern-guide/request-and-entry-tracking-rule.mdc
index a2b6bbc..dba2619 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/request-and-entry-tracking-rule.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/request-and-entry-tracking-rule.mdc
@@ -1,8 +1,37 @@
---
-description:
-globs:
+description: 请求和条目追踪规则
+globs: []
alwaysApply: false
---
+# 请求和条目追踪规则
+本规则集定义了全栈 MERN 指南中请求和数据条目追踪的规范,旨在提高系统的可观测性、可审计性和问题排查效率。
+## 1. 请求追踪
+
+- **唯一请求 ID**: 为每个传入的 HTTP 请求生成一个唯一的请求 ID(例如使用 UUID)。
+- **日志关联**: 在整个请求生命周期中,将此请求 ID 贯穿于所有相关的日志记录中,包括前端、后端服务、数据库查询等。
+- **请求头传递**: 如果请求跨越多个服务(微服务架构),请求 ID 应该通过 HTTP 请求头(如 `X-Request-ID`)进行传递。
+
+## 2. 数据条目追踪
+
+- **创建者和创建时间**: 所有数据条目在创建时应记录创建用户(`createdBy`)和创建时间(`createdAt`)。
+- **最后修改者和修改时间**: 所有数据条目在更新时应记录最后修改用户(`updatedBy`)和最后修改时间(`updatedAt`)。
+- **版本控制/历史记录**: 对于关键数据,考虑实现版本控制或历史记录功能,记录每次修改的具体内容。
+
+## 3. 日志记录规范
+
+- **结构化日志**: 使用结构化日志(如 JSON 格式)记录信息,便于日志分析工具进行解析和查询。
+- **日志级别**: 合理使用日志级别(DEBUG, INFO, WARN, ERROR, FATAL),区分不同重要性的信息。
+- **敏感信息脱敏**: 在日志中对敏感信息(如密码、个人身份信息)进行脱敏处理,避免泄露。
+
+## 4. 监控与告警
+
+- **关键指标监控**: 监控请求量、响应时间、错误率等关键指标。
+- **异常告警**: 当系统出现异常(如高错误率、请求超时)时,及时发出告警。
+
+## 5. 可视化与分析
+
+- **日志聚合**: 使用日志聚合工具(如 ELK Stack, Grafana Loki)集中管理和查询日志。
+- **追踪系统**: 集成分布式追踪系统(如 Jaeger, Zipkin),可视化请求在不同服务间的流转。
diff --git a/rules/backend/nodejs/fullstack-mern-guide/request-limit-rule.mdc b/rules/backend/nodejs/fullstack-mern-guide/request-limit-rule.mdc
index a2b6bbc..94d9cdd 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/request-limit-rule.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/request-limit-rule.mdc
@@ -1,8 +1,42 @@
---
-description:
-globs:
+description: 请求限制规则
+globs: []
alwaysApply: false
---
+# 请求限制规则
+本规则集定义了全栈 MERN 指南中请求限制(速率限制)的规范和最佳实践,旨在保护后端服务免受滥用、DDoS 攻击,并确保资源的公平分配。
+## 1. 速率限制策略
+
+- **基于 IP 的限制**: 限制来自单个 IP 地址的请求频率。
+- **基于用户/API Key 的限制**: 对于认证用户或使用 API Key 的请求,可以设置更宽松或更精细的限制。
+- **滑动窗口算法**: 推荐使用滑动窗口算法(如滑动日志或滑动窗口计数器)来实现更平滑和准确的速率限制,而非固定窗口。
+
+## 2. 限制类型
+
+- **每秒请求数 (RPS)**: 限制在给定时间窗口内允许的请求数量。
+- **并发请求数**: 限制同时处理的请求数量,防止服务器过载。
+- **带宽限制**: 限制客户端或用户可以消耗的总带宽。
+
+## 3. 响应处理
+
+- **HTTP 状态码**: 当请求被限制时,应返回 `HTTP 429 Too Many Requests` 状态码。
+- **Retry-After 头**: 在响应中包含 `Retry-After` HTTP 头,告知客户端何时可以再次发送请求。
+- **友好的错误信息**: 提供清晰的错误信息,解释请求被限制的原因和如何解决。
+
+## 4. 实施层面
+
+- **中间件**: 在 Express.js 应用中,可以使用 `express-rate-limit` 等中间件轻松实现速率限制。
+- **反向代理/API 网关**: 在生产环境中,推荐在 Nginx、Cloudflare 或 API 网关层面实现速率限制,以在请求到达应用服务器之前进行过滤。
+
+## 5. 绕过与白名单
+
+- **内部服务**: 内部服务之间的通信通常可以绕过速率限制。
+- **特定用户/IP**: 对于某些特殊用户或合作伙伴的 IP 地址,可以将其加入白名单,免受限制。
+
+## 6. 监控与告警
+
+- **监控被限制的请求**: 监控被速率限制拒绝的请求数量,以便及时发现潜在的攻击或配置问题。
+- **告警**: 当被限制的请求达到一定阈值时,触发告警通知。
diff --git a/rules/backend/nodejs/fullstack-mern-guide/state-transition-rule.mdc b/rules/backend/nodejs/fullstack-mern-guide/state-transition-rule.mdc
index a2b6bbc..dc98c46 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/state-transition-rule.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/state-transition-rule.mdc
@@ -1,8 +1,40 @@
---
-description:
-globs:
+description: 状态转换规则
+globs: []
alwaysApply: false
---
+# 状态转换规则
+本规则集定义了全栈 MERN 指南中应用程序数据或实体状态转换的规范和最佳实践,确保状态流转的逻辑正确性和数据一致性。
+## 1. 明确的状态定义
+
+- **枚举所有可能状态**: 对于任何具有生命周期的实体(如订单、任务、用户状态),必须明确定义其所有可能的离散状态。
+- **状态图/流程图**: 使用状态图或流程图清晰地可视化状态之间的转换路径。
+
+## 2. 合法的状态转换
+
+- **定义合法路径**: 严格定义从一个状态到另一个状态的所有合法转换路径。禁止非法或意外的状态跳跃。
+- **条件约束**: 每次状态转换都应伴随特定的条件检查。例如,只有当订单已支付时,才能从“待支付”转换为“已支付”。
+- **权限检查**: 确保只有具备相应权限的用户或系统才能触发特定的状态转换。
+
+## 3. 幂等性与原子性
+
+- **幂等操作**: 状态转换操作应设计为幂等的,即多次执行相同操作应产生相同的结果,不会引入副作用。
+- **原子性**: 确保状态转换是一个原子操作,即要么完全成功,要么完全失败,不会出现中间状态。
+
+## 4. 事件驱动与日志记录
+
+- **事件触发**: 状态转换可以由外部事件(如用户操作、支付回调)或内部事件(如定时任务)触发。
+- **日志记录**: 每次状态转换都应详细记录日志,包括:旧状态、新状态、转换时间、触发者、相关数据等,以便审计和问题追踪。
+
+## 5. 错误处理与回滚
+
+- **失败处理**: 当状态转换失败时,应提供清晰的错误信息,并确保系统能够优雅地处理失败情况。
+- **回滚机制**: 对于复杂的状态转换,考虑实现回滚机制,以便在发生错误时恢复到之前的状态。
+
+## 6. 业务逻辑分离
+
+- 将状态转换的业务逻辑与数据持久化逻辑分离,提高代码的可维护性和可测试性。
+- 可以使用状态机库来管理复杂的状态转换逻辑。
diff --git a/rules/backend/nodejs/fullstack-mern-guide/strategic-planning-with-pseudocode.mdc b/rules/backend/nodejs/fullstack-mern-guide/strategic-planning-with-pseudocode.mdc
index a2b6bbc..b2c884c 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/strategic-planning-with-pseudocode.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/strategic-planning-with-pseudocode.mdc
@@ -1,8 +1,60 @@
---
-description:
-globs:
+description: 使用伪代码进行战略规划
+globs: []
alwaysApply: false
---
+# 使用伪代码进行战略规划
+本规则集定义了在全栈 MERN 指南中,如何利用伪代码进行战略规划和高层次设计,以确保开发流程的清晰性、可协作性和效率。
+## 1. 伪代码的目的
+
+- **抽象化**: 伪代码旨在抽象化具体编程语言的细节,专注于算法逻辑和业务流程。
+- **沟通工具**: 作为开发团队、产品经理和利益相关者之间沟通的桥梁,确保所有人对系统行为有共同的理解。
+- **设计验证**: 在实际编码之前,通过伪代码快速验证设计思路和逻辑,及早发现潜在问题。
+
+## 2. 伪代码的编写规范
+
+- **清晰简洁**: 伪代码应清晰、简洁,易于理解,避免冗余和模糊的表达。
+- **结构化**: 使用缩进、流程控制语句(如 `IF/THEN/ELSE`, `FOR`, `WHILE`)和函数/过程定义来组织逻辑。
+- **语言无关**: 避免使用特定编程语言的语法或关键字,但可以使用常见的数学符号和逻辑运算符。
+- **注释**: 适当添加注释,解释复杂逻辑或关键决策。
+
+## 3. 战略规划中的应用
+
+- **高层次流程**: 用于描述整个系统或模块的高层次数据流和用户交互流程。
+- **关键算法**: 详细描述复杂算法的步骤,例如数据处理、排序、搜索或业务规则的执行。
+- **API 设计**: 在设计 RESTful API 或其他接口时,可以使用伪代码来定义请求/响应结构和处理逻辑。
+- **数据库交互**: 描述与数据库的交互逻辑,例如数据查询、插入、更新和删除的步骤。
+
+## 4. 示例
+
+```pseudocode
+FUNCTION ProcessOrder(orderId)
+ GET orderDetails FROM database WHERE order_id = orderId
+ IF orderDetails IS NOT NULL THEN
+ IF orderDetails.status IS "Pending" THEN
+ CALCULATE totalAmount FROM orderDetails.items
+ IF totalAmount > 0 THEN
+ INITIATE paymentProcess WITH orderId, totalAmount
+ IF paymentProcess.status IS "Success" THEN
+ UPDATE orderDetails.status TO "Paid"
+ SEND confirmationEmail TO orderDetails.customerEmail
+ RETURN "Order Processed Successfully"
+ ELSE
+ UPDATE orderDetails.status TO "Payment Failed"
+ LOG error "Payment failed for order " + orderId
+ RETURN "Payment Failed"
+ END IF
+ ELSE
+ RETURN "Order amount is zero"
+ END IF
+ ELSE
+ RETURN "Order already processed or in invalid state"
+ END IF
+ ELSE
+ RETURN "Order not found"
+ END IF
+END FUNCTION
+```
diff --git a/rules/backend/nodejs/fullstack-mern-guide/strict-user-requirements-adherence.mdc b/rules/backend/nodejs/fullstack-mern-guide/strict-user-requirements-adherence.mdc
index a2b6bbc..006ce66 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/strict-user-requirements-adherence.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/strict-user-requirements-adherence.mdc
@@ -1,8 +1,41 @@
---
-description:
-globs:
+description: 严格遵守用户需求
+globs: []
alwaysApply: false
---
+# 严格遵守用户需求
+本规则集定义了在全栈 MERN 指南开发过程中,如何严格遵守用户需求,确保最终产品能够满足用户期望并解决实际问题。
+## 1. 需求理解与确认
+
+- **深入理解**: 在开始任何开发工作之前,必须深入理解用户需求的背景、目的和预期结果。
+- **需求文档**: 确保所有需求都经过清晰、详细的文档化,并获得用户或产品经理的确认。
+- **消除歧义**: 对于任何模糊或有歧义的需求,应及时与用户沟通并澄清,避免后期返工。
+
+## 2. 需求优先级排序
+
+- **核心功能优先**: 识别并优先开发核心功能,确保产品能够提供基本价值。
+- **迭代开发**: 采用敏捷开发方法,将需求分解为小的、可管理的迭代,逐步交付。
+
+## 3. 持续的用户反馈
+
+- **早期介入**: 在开发周期的早期阶段就让用户参与进来,收集他们的反馈。
+- **原型与演示**: 定期向用户展示原型或阶段性成果,以便他们提供及时的反馈和调整方向。
+- **用户测试**: 进行用户验收测试 (UAT),确保产品符合用户的实际操作习惯和业务流程。
+
+## 4. 变更管理
+
+- **正式的变更流程**: 对于任何需求变更,都应遵循正式的变更管理流程,包括评估影响、获得批准和更新文档。
+- **沟通透明**: 及时向所有相关方沟通需求变更,确保团队成员和用户都了解最新的需求。
+
+## 5. 可追溯性
+
+- **需求到代码的映射**: 确保每个开发任务、代码提交和测试用例都可以追溯到特定的用户需求。
+- **测试覆盖**: 编写全面的测试用例,验证每个需求都已正确实现。
+
+## 6. 避免过度工程
+
+- **聚焦核心**: 避免在不明确的需求上进行过度设计或实现,只开发当前用户真正需要的功能。
+- **最小可行产品 (MVP)**: 优先交付 MVP,然后根据用户反馈逐步迭代和完善。
diff --git a/rules/backend/nodejs/fullstack-mern-guide/submission-process-outline.mdc b/rules/backend/nodejs/fullstack-mern-guide/submission-process-outline.mdc
index a2b6bbc..cf7a98f 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/submission-process-outline.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/submission-process-outline.mdc
@@ -1,8 +1,49 @@
---
-description:
-globs:
+description: 提交流程大纲
+globs: []
alwaysApply: false
---
+# 提交流程大纲
+本规则集定义了全栈 MERN 指南中数据或内容提交的流程大纲和关键步骤,旨在确保提交过程的顺畅、安全和数据完整性。
+## 1. 客户端数据准备与验证
+
+- **数据收集**: 确保所有必需的用户输入都已收集完整。
+- **客户端验证**: 在前端进行初步的数据格式和基本规则验证,提供即时反馈,提升用户体验。
+- **数据封装**: 将收集到的数据封装成适合发送到后端 API 的格式(如 JSON 对象)。
+
+## 2. 前端到后端通信
+
+- **API 调用**: 使用异步 JavaScript 请求(如 `fetch` 或 Axios)向后端 API 发送数据。
+- **HTTP 方法**: 根据操作类型选择正确的 HTTP 方法(如 `POST` 用于创建,`PUT`/`PATCH` 用于更新)。
+- **认证与授权**: 确保请求包含必要的认证令牌(如 JWT),并且用户有权限执行提交操作。
+
+## 3. 后端数据接收与验证
+
+- **请求解析**: 后端接收并解析传入的请求体,提取提交的数据。
+- **服务器端验证**: 对所有接收到的数据进行严格的服务器端验证,包括数据类型、格式、业务逻辑和安全检查。
+- **错误处理**: 如果验证失败,返回清晰的错误信息和相应的 HTTP 状态码(如 `400 Bad Request`)。
+
+## 4. 业务逻辑处理
+
+- **数据处理**: 执行与提交相关的业务逻辑,例如数据转换、计算或与其他服务的交互。
+- **唯一性检查**: 对于需要唯一性的字段,进行数据库层面的唯一性检查。
+- **事务管理**: 对于涉及多个数据库操作的复杂提交,使用事务来确保数据的一致性和原子性。
+
+## 5. 数据持久化
+
+- **数据库操作**: 将处理后的数据存储到 MongoDB 数据库中。
+- **错误处理**: 处理数据库操作可能出现的错误,如连接问题、写入失败等。
+
+## 6. 响应与反馈
+
+- **成功响应**: 如果提交成功,返回适当的 HTTP 状态码(如 `201 Created` 或 `200 OK`)和包含新创建资源或操作结果的数据。
+- **失败响应**: 如果提交失败,返回适当的错误状态码和详细的错误信息。
+- **用户通知**: 前端根据后端响应向用户提供相应的成功或失败提示。
+
+## 7. 日志与审计
+
+- **操作日志**: 记录所有提交操作的详细日志,包括提交者、提交内容、时间戳和结果。
+- **审计追踪**: 确保关键提交操作可追溯,便于后续审计和问题排查。
diff --git a/rules/backend/nodejs/fullstack-mern-guide/weekly-scoring-process-pseudocode.mdc b/rules/backend/nodejs/fullstack-mern-guide/weekly-scoring-process-pseudocode.mdc
index a2b6bbc..bd751e9 100644
--- a/rules/backend/nodejs/fullstack-mern-guide/weekly-scoring-process-pseudocode.mdc
+++ b/rules/backend/nodejs/fullstack-mern-guide/weekly-scoring-process-pseudocode.mdc
@@ -1,8 +1,85 @@
---
-description:
-globs:
+description: 每周评分流程伪代码
+globs: []
alwaysApply: false
---
+# 每周评分流程伪代码
+本规则集定义了全栈 MERN 指南中每周评分流程的伪代码实现,旨在清晰地描述评分逻辑和数据处理步骤。
+## 1. 流程概述
+
+每周评分流程旨在汇总用户或实体的表现数据,并根据预定义的规则计算出新的分数或排名。该流程通常作为后台定时任务运行。
+
+## 2. 伪代码实现
+
+```pseudocode
+FUNCTION CalculateWeeklyScores()
+ // 1. 获取所有需要评分的用户或实体
+ users = GET_ALL_ACTIVE_USERS_FROM_DATABASE()
+
+ FOR EACH user IN users
+ // 2. 获取用户本周的相关数据
+ weeklyData = GET_USER_WEEKLY_DATA(user.id, CURRENT_WEEK_START_DATE, CURRENT_WEEK_END_DATE)
+
+ // 3. 初始化用户本周总分
+ totalScore = 0
+
+ // 4. 根据不同数据项计算分数
+ IF weeklyData.completedTasks IS NOT NULL THEN
+ totalScore = totalScore + (weeklyData.completedTasks * TASK_SCORE_WEIGHT)
+ END IF
+
+ IF weeklyData.bugsReported IS NOT NULL THEN
+ totalScore = totalScore + (weeklyData.bugsReported * BUG_SCORE_WEIGHT)
+ END IF
+
+ IF weeklyData.customerFeedbackScore IS NOT NULL THEN
+ totalScore = totalScore + (weeklyData.customerFeedbackScore * FEEDBACK_SCORE_WEIGHT)
+ END IF
+
+ // 5. 应用惩罚或奖励规则
+ IF user.hasLateSubmissions THIS_WEEK THEN
+ totalScore = totalScore - LATE_SUBMISSION_PENALTY
+ END IF
+
+ IF user.achievedBonusGoal THIS_WEEK THEN
+ totalScore = totalScore + BONUS_REWARD
+ END IF
+
+ // 6. 更新用户的总分或历史分数记录
+ UPDATE_USER_SCORE_IN_DATABASE(user.id, totalScore, CURRENT_WEEK)
+
+ // 7. 记录评分日志
+ LOG_INFO("User " + user.id + " weekly score calculated: " + totalScore)
+ END FOR
+
+ // 8. 可选:根据新分数重新排名
+ RECALCULATE_GLOBAL_RANKINGS()
+
+ LOG_INFO("Weekly scoring process completed.")
+END FUNCTION
+
+// 辅助函数示例
+FUNCTION GET_USER_WEEKLY_DATA(userId, startDate, endDate)
+ // 从数据库或数据源获取指定用户在给定日期范围内的所有相关数据
+ // RETURN { completedTasks: 10, bugsReported: 2, customerFeedbackScore: 4.5, ... }
+END FUNCTION
+
+FUNCTION UPDATE_USER_SCORE_IN_DATABASE(userId, score, week)
+ // 将计算出的分数更新到数据库中用户的记录
+END FUNCTION
+
+FUNCTION RECALCULATE_GLOBAL_RANKINGS()
+ // 根据所有用户的最新分数重新计算并更新全局排名
+END FUNCTION
+```
+
+## 3. 关键考虑事项
+
+- **数据源**: 明确所有评分所需数据的数据源及其获取方式。
+- **权重与常数**: 评分规则中使用的所有权重和常数应可配置。
+- **错误处理**: 在数据获取和更新过程中应包含健壮的错误处理机制。
+- **性能**: 对于大量用户,需要考虑评分流程的性能优化,例如批量处理或并行计算。
+- **可审计性**: 确保每次评分的结果和依据都可追溯。
diff --git a/rules/backend/php/laravel-package-guide/readme-md-guidelines.mdc b/rules/backend/php/laravel-package-guide/readme-md-guidelines.mdc
index a2b6bbc..7d4adef 100644
--- a/rules/backend/php/laravel-package-guide/readme-md-guidelines.mdc
+++ b/rules/backend/php/laravel-package-guide/readme-md-guidelines.mdc
@@ -1,8 +1,90 @@
---
-description:
-globs:
+description: README.md 指南
+globs: []
alwaysApply: false
---
+# README.md 指南
+本规则集定义了 Laravel 包开发中 `README.md` 文件的编写指南和最佳实践,旨在确保包文档的清晰性、完整性和易用性。
+## 1. 标题与简介
+
+- **包名称**: `README.md` 的顶部应包含清晰的包名称,通常作为一级标题。
+- **简短描述**: 紧随其后应提供一个简短、吸引人的包功能描述,让读者快速了解其用途。
+- **状态徽章 (可选)**: 可以包含 CI/CD 状态、版本号、下载量等徽章,以提供快速概览。
+
+## 2. 安装指南
+
+- **Composer**: 详细说明如何通过 Composer 安装包,包括 `composer require` 命令。
+- **服务提供者**: 如果需要,说明如何在 `config/app.php` 中注册服务提供者。
+- **发布配置/迁移**: 如果包包含可发布的文件(如配置文件、迁移文件),提供发布命令。
+
+## 3. 使用方法
+
+- **基本用法**: 提供清晰的代码示例,展示包的核心功能如何使用。
+- **高级用法 (可选)**: 如果包有更复杂或高级的功能,可以提供额外的示例。
+- **配置**: 说明如何配置包,包括配置文件的结构和常用选项。
+
+## 4. 贡献指南
+
+- **如何贡献**: 简要说明如何为包贡献代码,例如提交 Bug 报告、功能请求或 Pull Request。
+- **代码风格**: 如果有特定的代码风格要求,可以提及或链接到相关文档。
+
+## 5. 测试
+
+- **运行测试**: 说明如何运行包的测试。
+
+## 6. 许可证
+
+- **许可证信息**: 明确指出包的许可证类型(如 MIT、Apache 2.0),并建议包含许可证文件的链接。
+
+## 7. 变更日志 (可选)
+
+- **版本历史**: 可以包含一个指向 `CHANGELOG.md` 文件的链接,或直接在 `README.md` 中简要列出主要版本变更。
+
+## 8. 示例结构
+
+```markdown
+# Your Awesome Laravel Package
+
+一个简短的描述,说明你的包做了什么。
+
+[](https://example.com/ci)
+
+## 安装
+
+```bash
+composer require vendor/package-name
+```
+
+### 发布配置 (可选)
+
+```bash
+php artisan vendor:publish --provider="Vendor\\PackageName\\PackageServiceProvider"
+```
+
+## 使用方法
+
+```php
+// 你的代码示例
+```
+
+## 配置
+
+说明配置选项。
+
+## 贡献
+
+欢迎贡献!请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 获取更多信息。
+
+## 测试
+
+```bash
+composer test
+```
+
+## 许可证
+
+本项目根据 MIT 许可证发布。
+```
diff --git a/rules/backend/python/fastapi-api-example/fastapi-dependency-injection.mdc b/rules/backend/python/fastapi-api-example/fastapi-dependency-injection.mdc
index a2b6bbc..8f2c946 100644
--- a/rules/backend/python/fastapi-api-example/fastapi-dependency-injection.mdc
+++ b/rules/backend/python/fastapi-api-example/fastapi-dependency-injection.mdc
@@ -1,8 +1,92 @@
---
-description:
-globs:
+description: FastAPI 依赖注入
+globs: []
alwaysApply: false
---
+# FastAPI 依赖注入
+本规则集定义了在 FastAPI 应用程序中如何有效地使用依赖注入(Dependency Injection, DI),以提高代码的可测试性、可维护性和模块化。
+## 1. 什么是依赖注入?
+
+依赖注入是一种设计模式,它允许您将组件所需的依赖项(如数据库会话、配置设置、认证用户等)“注入”到组件中,而不是让组件自己创建或查找这些依赖项。这使得组件更加独立和可重用。
+
+## 2. FastAPI 中的依赖注入
+
+FastAPI 内置了一个强大且易于使用的依赖注入系统。您可以通过在路径操作函数中声明参数来定义依赖项。
+
+### 2.1 简单的依赖
+
+- **函数作为依赖**: 最简单的依赖是一个函数,它返回一个值。FastAPI 会在调用路径操作函数之前执行这个依赖函数,并将其返回值作为参数传递给路径操作函数。
+
+```python
+from fastapi import FastAPI, Depends
+
+app = FastAPI()
+
+def get_current_user():
+ # 假设这里是从请求头或数据库获取当前用户
+ return {"username": "john_doe"}
+
+@app.get("/users/me/")
+async def read_current_user(current_user: dict = Depends(get_current_user)):
+ return current_user
+```
+
+### 2.2 带参数的依赖
+
+- **依赖也可以有自己的依赖**: 依赖函数本身也可以声明依赖项,形成依赖链。
+
+```python
+from fastapi import FastAPI, Depends, HTTPException, status
+
+app = FastAPI()
+
+def get_api_key():
+ # 假设这里从请求头获取 API Key
+ api_key = "some_api_key"
+ if api_key != "valid_key":
+ raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail="Invalid API Key")
+ return api_key
+
+@app.get("/protected-data/")
+async def get_protected_data(api_key: str = Depends(get_api_key)):
+ return {"data": "This is protected data", "api_key_used": api_key}
+```
+
+### 2.3 `yield` 依赖 (带清理代码)
+
+- **资源管理**: 对于需要在使用后进行清理的资源(如数据库会话、文件句柄),可以使用 `yield` 依赖。`yield` 之前的代码会在请求处理前运行,`yield` 之后的代码会在请求处理后运行。
+
+```python
+from fastapi import FastAPI, Depends
+
+app = FastAPI()
+
+class DatabaseSession:
+ def __init__(self):
+ print("Opening database session")
+
+ def close(self):
+ print("Closing database session")
+
+def get_db():
+ db = DatabaseSession()
+ try:
+ yield db
+ finally:
+ db.close()
+
+@app.get("/items/")
+async def read_items(db: DatabaseSession = Depends(get_db)):
+ # 使用数据库会话
+ return {"message": "Items read using DB session"}
+```
+
+## 3. 依赖注入的优势
+
+- **代码重用**: 依赖项可以被多个路径操作函数重用。
+- **可测试性**: 易于为路径操作函数编写单元测试,因为可以轻松地模拟或替换依赖项。
+- **解耦**: 路径操作函数不需要关心如何获取其依赖项,从而实现更好的解耦。
+- **声明式**: 通过函数参数声明依赖项,代码更加清晰和声明式。
diff --git a/rules/backend/python/fastapi-api-example/fastapi-file-structure.mdc b/rules/backend/python/fastapi-api-example/fastapi-file-structure.mdc
index a2b6bbc..0656cfa 100644
--- a/rules/backend/python/fastapi-api-example/fastapi-file-structure.mdc
+++ b/rules/backend/python/fastapi-api-example/fastapi-file-structure.mdc
@@ -1,8 +1,100 @@
---
-description:
-globs:
+description: FastAPI 文件结构
+globs: []
alwaysApply: false
---
+# FastAPI 文件结构
+本规则集定义了在 FastAPI 应用程序中推荐的文件和目录结构,旨在提高代码的可组织性、可维护性和可扩展性。
+## 1. 核心原则
+
+- **模块化**: 将应用程序的不同部分(如路由、模型、服务、依赖项)分离到独立的模块中。
+- **清晰性**: 文件和目录命名应清晰明了,反映其内容和功能。
+- **可扩展性**: 结构应支持未来功能的添加和团队协作。
+
+## 2. 推荐的目录结构
+
+以下是一个推荐的 FastAPI 项目结构示例:
+
+```
+my_fastapi_project/
+├── app/
+│ ├── __init__.py
+│ ├── main.py # FastAPI 应用入口点
+│ ├── api/ # API 路由和端点
+│ │ ├── __init__.py
+│ │ ├── v1/ # API 版本控制 (可选)
+│ │ │ ├── __init__.py
+│ │ │ ├── endpoints/ # 具体端点实现
+│ │ │ │ ├── __init__.py
+│ │ │ │ ├── users.py
+│ │ │ │ └── items.py
+│ │ │ └── deps.py # 版本特定的依赖项
+│ │ └── router.py # 聚合所有 API 路由
+│ ├── core/ # 核心配置、设置、常量
+│ │ ├── __init__.py
+│ │ ├── config.py
+│ │ └── security.py
+│ ├── crud/ # 创建、读取、更新、删除操作 (与数据库交互)
+│ │ ├── __init__.py
+│ │ ├── user.py
+│ │ └── item.py
+│ ├── db/ # 数据库相关配置和会话管理
+│ │ ├── __init__.py
+│ │ ├── base.py # 基础模型或 ORM 声明
+│ │ └── session.py # 数据库会话管理
+│ ├── models/ # Pydantic 模型和 SQLAlchemy 模型
+│ │ ├── __init__.py
+│ │ ├── user.py
+│ │ └── item.py
+│ ├── schemas/ # Pydantic schema (请求/响应模型)
+│ │ ├── __init__.py
+│ │ ├── user.py
+│ │ └── item.py
+│ ├── services/ # 业务逻辑服务层
+│ │ ├── __init__.py
+│ │ ├── user.py
+│ │ └── item.py
+│ └── tests/ # 单元测试和集成测试
+│ ├── __init__.py
+│ ├── api/
+│ │ └── test_users.py
+│ └── crud/
+│ └── test_user_crud.py
+├── .env # 环境变量 (敏感信息)
+├── .gitignore
+├── Dockerfile # Docker 容器化配置
+├── README.md
+├── requirements.txt # Python 依赖包列表
+└── uvicorn_run.sh # 启动脚本 (可选)
+```
+
+## 3. 目录说明
+
+- `app/main.py`: FastAPI 应用的入口文件,通常在这里实例化 `FastAPI()` 并包含顶层路由。
+- `app/api/`: 包含所有 API 路由定义。可以进一步按版本 (`v1/`, `v2/`) 或功能模块 (`users/`, `items/`) 组织。
+- `app/core/`: 存放应用程序的核心配置、安全设置、日志配置等。
+- `app/crud/`: 包含与数据库进行 CRUD 操作的函数。这些函数通常接收 Pydantic 模型作为输入,并返回数据库模型。
+- `app/db/`: 数据库连接、会话管理和 ORM 基础声明。
+- `app/models/`: 定义数据库模型(如 SQLAlchemy ORM 模型)。
+- `app/schemas/`: 定义 Pydantic 模型,用于请求体验证、响应序列化和数据验证。
+- `app/services/`: 包含业务逻辑。`crud` 层处理数据库交互,而 `services` 层则协调 `crud` 操作,实现更复杂的业务规则。
+- `app/tests/`: 存放所有测试文件,结构应与 `app/` 目录相对应。
+- `requirements.txt`: 列出项目所需的所有 Python 依赖。
+- `Dockerfile`: 用于构建 Docker 镜像的配置文件。
+
+## 4. 启动应用
+
+通常使用 Uvicorn 启动 FastAPI 应用:
+
+```bash
+uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
+```
+
+或者如果您有 `uvicorn_run.sh` 脚本:
+
+```bash
+bash uvicorn_run.sh
+```
diff --git a/rules/backend/python/fastapi-api-example/fastapi-performance-metrics.mdc b/rules/backend/python/fastapi-api-example/fastapi-performance-metrics.mdc
index a2b6bbc..09f98a4 100644
--- a/rules/backend/python/fastapi-api-example/fastapi-performance-metrics.mdc
+++ b/rules/backend/python/fastapi-api-example/fastapi-performance-metrics.mdc
@@ -1,8 +1,45 @@
---
-description:
-globs:
+description: FastAPI 性能指标
+globs: []
alwaysApply: false
---
+# FastAPI 性能指标
+本规则集定义了在 FastAPI 应用程序中监控和优化性能的关键指标和方法,旨在确保应用程序的高效运行和良好的用户体验。
+## 1. 关键性能指标 (KPIs)
+
+- **响应时间 (Latency)**: API 端点处理请求并返回响应所需的时间。通常关注平均响应时间、P95 和 P99 响应时间。
+- **吞吐量 (Throughput)**: 单位时间内 API 端点能够处理的请求数量(例如,每秒请求数 RPS)。
+- **错误率 (Error Rate)**: 返回错误响应(例如,HTTP 5xx 状态码)的请求所占的百分比。
+- **资源利用率**: CPU 使用率、内存使用率、磁盘 I/O 和网络 I/O。
+- **并发连接数**: 同时连接到服务器的客户端数量。
+
+## 2. 监控工具与实践
+
+- **日志**: 使用结构化日志记录请求和响应信息,包括响应时间、状态码等。
+- **Prometheus/Grafana**: 集成 Prometheus 用于收集指标,Grafana 用于可视化和构建仪表盘。
+ - **FastAPI 性能中间件**: 可以使用 `starlette-exporter` 或自定义中间件来暴露 Prometheus 指标。
+- **APM (Application Performance Monitoring)**: 使用 Sentry、New Relic、Datadog 等 APM 工具进行更全面的应用性能监控和追踪。
+- **压力测试**: 使用 Locust、JMeter、k6 等工具进行压力测试,模拟高并发场景,发现性能瓶颈。
+
+## 3. 性能优化策略
+
+- **异步操作**: 充分利用 FastAPI 的异步特性(`async/await`),尤其是在进行 I/O 密集型操作(如数据库查询、外部 API 调用)时。
+- **数据库优化**:
+ - **索引**: 确保数据库表有适当的索引。
+ - **查询优化**: 避免 N+1 查询问题,使用连接查询或批量查询。
+ - **连接池**: 使用数据库连接池来管理数据库连接。
+- **缓存**:
+ - **内存缓存**: 使用 Redis 或 Memcached 缓存频繁访问的数据。
+ - **HTTP 缓存**: 利用 HTTP 缓存头(`Cache-Control`, `ETag`, `Last-Modified`)减少重复请求。
+- **数据序列化优化**: 优化 Pydantic 模型的序列化和反序列化性能。
+- **Gunicorn/Uvicorn 配置**:
+ - **工作进程数**: 根据 CPU 核心数配置 Gunicorn 的工作进程数(通常为 `2 * CPU_CORES + 1`)。
+ - **Worker 类型**: 对于 I/O 密集型应用,可以考虑使用 `uvloop` 和 `httptools` 优化 Uvicorn。
+- **代码优化**:
+ - **避免不必要的计算**: 减少每个请求中的计算量。
+ - **延迟加载**: 延迟加载不立即需要的数据或资源。
+- **限流**: 实施速率限制以保护 API 免受滥用和过载。
+- **CDN**: 对于静态文件,使用 CDN 加速内容分发。
diff --git a/rules/backend/python/fastapi-api-example/fastapi-startup-and-shutdown-events.mdc b/rules/backend/python/fastapi-api-example/fastapi-startup-and-shutdown-events.mdc
index a2b6bbc..82a2924 100644
--- a/rules/backend/python/fastapi-api-example/fastapi-startup-and-shutdown-events.mdc
+++ b/rules/backend/python/fastapi-api-example/fastapi-startup-and-shutdown-events.mdc
@@ -1,8 +1,106 @@
---
-description:
-globs:
+description: FastAPI 启动和关闭事件
+globs: []
alwaysApply: false
---
+# FastAPI 启动和关闭事件
+本规则集定义了在 FastAPI 应用程序中如何利用启动 (startup) 和关闭 (shutdown) 事件来执行初始化和清理任务,确保应用程序的健壮性和资源管理的正确性。
+## 1. 启动事件 (Startup Events)
+
+启动事件在应用程序开始接收请求之前执行。这对于初始化数据库连接、加载配置、创建后台任务或执行其他一次性设置非常有用。
+
+### 1.1 使用 `@app.on_event("startup")` 装饰器
+
+您可以使用 `@app.on_event("startup")` 装饰器来注册启动函数。这些函数可以是同步的也可以是异步的。
+
+```python
+from fastapi import FastAPI
+import asyncio
+
+app = FastAPI()
+
+# 模拟数据库连接
+db_connection = None
+
+@app.on_event("startup")
+async def startup_event():
+ global db_connection
+ print("Application starting up...")
+ # 模拟异步数据库连接
+ await asyncio.sleep(1)
+ db_connection = {"status": "connected"}
+ print("Database connected.")
+
+@app.get("/")
+async def read_root():
+ if db_connection and db_connection["status"] == "connected":
+ return {"message": "Hello World", "db_status": "connected"}
+ return {"message": "Hello World", "db_status": "disconnected"}
+```
+
+### 1.2 多个启动事件
+
+您可以注册多个启动事件。它们将按照注册的顺序执行。
+
+```python
+@app.on_event("startup")
+async def load_config():
+ print("Loading configuration...")
+ await asyncio.sleep(0.5)
+ print("Configuration loaded.")
+
+@app.on_event("startup")
+async def init_cache():
+ print("Initializing cache...")
+ await asyncio.sleep(0.5)
+ print("Cache initialized.")
+```
+
+## 2. 关闭事件 (Shutdown Events)
+
+关闭事件在应用程序停止接收请求并即将关闭时执行。这对于关闭数据库连接、释放资源、清理临时文件或执行其他清理任务非常有用。
+
+### 2.1 使用 `@app.on_event("shutdown")` 装饰器
+
+您可以使用 `@app.on_event("shutdown")` 装饰器来注册关闭函数。这些函数可以是同步的也可以是异步的。
+
+```python
+@app.on_event("shutdown")
+async def shutdown_event():
+ global db_connection
+ print("Application shutting down...")
+ # 模拟异步关闭数据库连接
+ if db_connection:
+ await asyncio.sleep(1)
+ db_connection = None
+ print("Database connection closed.")
+ print("Application shut down.")
+```
+
+### 2.2 多个关闭事件
+
+您可以注册多个关闭事件。它们将按照注册的顺序执行。
+
+```python
+@app.on_event("shutdown")
+async def save_logs():
+ print("Saving logs before shutdown...")
+ await asyncio.sleep(0.5)
+ print("Logs saved.")
+
+@app.on_event("shutdown")
+async def close_queue_connection():
+ print("Closing message queue connection...")
+ await asyncio.sleep(0.5)
+ print("Message queue connection closed.")
+```
+
+## 3. 最佳实践
+
+- **资源管理**: 启动事件用于获取资源,关闭事件用于释放资源,确保资源不会泄露。
+- **错误处理**: 在启动和关闭事件中添加适当的错误处理,以防止应用程序启动失败或无法正常关闭。
+- **日志记录**: 在启动和关闭事件中记录详细的日志,以便于调试和监控应用程序的生命周期。
+- **非阻塞操作**: 尽量在启动和关闭事件中使用异步操作,避免阻塞主线程。
diff --git a/rules/code-guidelines-cursorrules-prompt-file/README.md b/rules/code-guidelines-cursorrules-prompt-file/README.md
new file mode 100644
index 0000000..f7b0c27
--- /dev/null
+++ b/rules/code-guidelines-cursorrules-prompt-file/README.md
@@ -0,0 +1,15 @@
+# 代码指南 .cursorrules 提示文件
+
+作者:Hamza Farhan
+
+## 你可以构建什么
+代码分析工具:开发一个工具,用于分析代码是否符合 .cursorrules AI 文件中设置的规则。它会高亮显示违规行为,例如缺失错误处理、缺少测试覆盖以及不匹配的编码风格。自动重构服务:创建一个服务,该服务可以逐个文件地自动重构代码,同时遵守诸如无空白建议、避免魔术数字和确保模块化设计等准则。项目一致性检查器:构建一个工具,用于检查项目中多个文件的一致编码风格、性能优先级和安全考虑,同时避免不必要的更新。开发者助手扩展:设计一个浏览器或 IDE 扩展,提供对代码编辑的实时反馈,强调明确的变量名、避免道歉,并确保不需要不必要的确认。代码优化平台:建立一个平台,提出性能改进和模块化设计策略的建议,同时确保版本兼容性并优先考虑安全第一的方法。单元测试建议应用:创建一个应用,为新的或修改过的代码自动生成单元测试,强调覆盖率,除非被要求,否则不显示或讨论当前实现。版本兼容性分析器:开发一个分析器,检查代码更改是否与项目指定的语言或框架版本兼容,以确保顺利集成和功能正常。边界情况识别器:构建一个工具,扫描代码以识别潜在的边界情况并提出处理策略,确保稳健的错误处理和日志记录。上下文感知代码审查器:创建一个代码审查平台,使用上下文生成的文件来提供对编辑的反馈,确保没有不必要的确认和文件保留。模块化设计教育平台:开发一个学习平台,教育开发人员实施和鼓励模块化设计原则,重点关注代码的可重用性和可维护性。断言验证器:构建一个集成到 CI/CD 管道中的服务,用于检查代码中断言的存在和正确使用,从而提高验证准确性和早期错误检测。硬编码值检测器:创建一个工具,扫描代码库以查找魔术数字,并建议替换为命名常量,从而提高清晰度和可维护性。错误处理增强器:设计一个插件或独立工具,为代码中的错误处理机制提出改进建议,为稳健的日志记录实践提供建议。
+
+## 优点
+
+
+## 概要
+在协作项目中工作的开发人员将通过建立清晰高效的代码审查和更新实践而受益,确保整个团队的代码质量一致、安全且可维护。
+
+## .cursorrules 提示概述
+.cursorrules 文件概述了在编辑或建议代码更改时要遵循的一系列规则和准则。它强调验证信息、逐个文件进行更改、保留现有代码以及避免不必要的确认或更新。它建议不要使用道歉、不必要的空白更改或总结所做的更改。重点是确保提供真实的文件链接、使用明确的变量名以及遵循一致的编码风格。性能、安全性、错误处理、模块化设计、版本兼容性、边界情况和测试覆盖率是优先考虑的。该文件不鼓励使用“魔术数字”,并鼓励使用断言来及早发现错误。
diff --git a/rules/code-guidelines-cursorrules-prompt-file/general-coding-rules.mdc b/rules/code-guidelines-cursorrules-prompt-file/general-coding-rules.mdc
new file mode 100644
index 0000000..1a635c0
--- /dev/null
+++ b/rules/code-guidelines-cursorrules-prompt-file/general-coding-rules.mdc
@@ -0,0 +1,30 @@
+---
+description: 在所有文件类型中应用通用编码规则,以保持代码质量、一致性并防止常见错误。
+globs: **/*.*
+---
+- 在呈现信息之前,务必核实信息。不要在没有明确证据的情况下做出假设或推测。
+- 逐个文件进行更改,给我一个发现错误的机会。
+- 切勿使用道歉。
+- 避免在评论或文档中提供关于理解的反馈。
+- 不要建议修改空白字符。
+- 不要总结所做的更改。
+- 除了明确要求的内容外,不要虚构其他更改。
+- 不要请求确认上下文中已提供的信息。
+- 不要删除不相关的代码或功能。注意保留现有结构。
+- 将所有编辑内容放在一个代码块中提供,而不是为同一个文件提供多步骤的指令或解释。
+- 不要要求用户验证在提供的上下文中可见的实现。
+- 当没有实际需要修改时,不要建议更新或更改文件。
+- 始终提供指向真实文件的链接,而不是上下文生成的文件。
+- 除非特别要求,否则不要显示或讨论当前的实现。
+- 记住检查上下文生成的文件以获取当前文件的内容和实现。
+- 优先使用描述性、明确的变量名,而不是简短、模糊的变量名,以增强代码的可读性。
+- 遵守项目中现有的编码风格以保持一致性。
+- 在建议更改时,在适用的情况下考虑并优先考虑代码性能。
+- 在修改或建议代码更改时,始终考虑安全影响。
+- 为新的或修改过的代码建议或包含适当的单元测试。
+- 在必要时实现稳健的错误处理和日志记录。
+- 鼓励模块化设计原则,以提高代码的可维护性和可重用性。
+- 确保建议的更改与项目指定的语言或框架版本兼容。
+- 用命名常量替换硬编码的值,以提高代码的清晰度和可维护性。
+- 在实现逻辑时,始终考虑并处理潜在的边界情况。
+- 尽可能包含断言,以验证假设并及早发现潜在错误。
diff --git a/rules/code-pair-interviews/README.md b/rules/code-pair-interviews/README.md
new file mode 100644
index 0000000..15ba4d0
--- /dev/null
+++ b/rules/code-pair-interviews/README.md
@@ -0,0 +1,30 @@
+# Cursor AI 结对编程面试 .cursorrules 提示文件
+
+作者:Radamés Roriz
+
+## 你可以构建什么
+
+这个 .cursorrules 文件旨在指导 Cursor AI 生成符合结对编程面试中常见的代码结构和风格最佳实践与期望的代码。它强调干净、可维护和专业质量的代码,以及协作编码实践。
+
+## 优点
+
+- **提高代码质量:** 确保生成的代码结构良好、可读性强,并遵循行业标准的风格约定。
+- **面试准备:** 通过模拟预期的编码环境和标准,帮助练习和准备结对编程面试。
+- **有效协作:** 促进在协作环境中易于理解和使用的代码。
+- **减少错误:** 鼓励生成考虑边界情况并包含基本错误处理的代码。
+- **一致性:** 在生成的代码中保持一致的编码风格,反映专业的软件开发实践。
+
+## 概要
+
+.cursorrules 文件为 Cursor AI 提供了关于以下方面的详细说明:
+
+- **代码结构与组织:** 如何分解问题,将代码组织成模块化单元,以及选择合适的数据结构和算法。
+- **编码风格:** 关于缩进、命名约定、注释、行长和代码布局的指南。
+- **协作与沟通:** 大声思考、给予/接受反馈以及协作调试的实践。
+- **编码最佳实践:** 强调编写干净代码、处理边界情况和时间管理。
+- **风格指南:** 参考 Python 的 PEP 8 和代码风格的一般原则。
+- **要避免的陷阱:** 结对编程面试中的常见错误以及如何预防它们。
+
+## .cursorrules 提示概述
+
+这个 .cursorrules 提示文件作为 Cursor AI 的综合指南,用于生成能够反映结对编程面试中预期的质量和协作方法的代码。它不仅涵盖了编写正确代码的技术方面,还包括了代码清晰度、风格一致性和有效沟通等关键要素,这些对于在此类评估中取得成功至关重要。通过遵守这些规则,Cursor AI 可以生成能够证明候选人已为实际软件开发和协作编码环境做好准备的代码。
diff --git a/rules/code-style-consistency-cursorrules-prompt-file/README.md b/rules/code-style-consistency-cursorrules-prompt-file/README.md
new file mode 100644
index 0000000..b97226b
--- /dev/null
+++ b/rules/code-style-consistency-cursorrules-prompt-file/README.md
@@ -0,0 +1,37 @@
+# 代码风格一致性提示
+
+作者:Peter M Souza Jr
+
+一个专门的 .cursorrules 提示,用于分析代码库模式,并确保新生成的 AI 代码遵循项目的既定风格和约定。
+
+## 你可以构建什么
+
+- **风格分析报告**:详细描述现有代码库的命名约定、格式化和架构模式的综合配置文件。
+- **一致的功能实现**:与现有代码风格无缝集成的新功能。
+- **自适应重构**:在保持风格完整性的前提下更新现有代码。
+- **风格自适应中间件**:一个处理层,可将任意代码转换为匹配项目模式。
+- **架构模式检测器**:识别和分类代码库中结构模式的工具。
+
+## 优点
+
+- **无缝集成**:生成的代码与现有项目代码自然融合。
+- **团队对齐**:确保 AI 辅助符合团队标准,无需额外返工。
+- **减少认知负荷**:一致的代码更易于阅读、理解和维护。
+- **改善协作**:最大限度地减少代码审查和合并中基于风格的冲突。
+- **渐进式增强**:适应代码库中不断发展的模式。
+- **上下文感知辅助**:尊重项目特定约定的 AI 建议。
+
+## 概要
+
+此提示可作为任何代码生成任务的强大前缀,在生成新代码之前分析项目的现有风格模式,以使其与既定约定和谐集成。
+
+## .cursorrules 提示概述
+
+.cursorrules 提示通过以下关键要素指导开发人员保持代码风格一致性:
+
+- **风格分析框架**:用于检查和分类代码模式的综合方法论。
+- **风格配置文件模板**:用于记录已识别约定的结构化格式。
+- **实践示例**:基于风格分析进行代码自适应的演示。
+- **一致性最佳实践**:保持风格完整性的十个关键原则。
+- **文件分析策略**:选择代表性文件以建立模式的指南。
+- **自适应技术**:将代码转换为匹配现有模式的具体方法。
diff --git a/rules/convex-cursorrules-prompt-file/convex-development---general.mdc b/rules/convex-cursorrules-prompt-file/convex-development---general.mdc
new file mode 100644
index 0000000..0f5e285
--- /dev/null
+++ b/rules/convex-cursorrules-prompt-file/convex-development---general.mdc
@@ -0,0 +1,7 @@
+---
+description: 应用于 Convex 开发的通用规则,强调模式设计、验证器使用和系统字段的正确处理。
+globs: **/convex/**/*.*
+---
+- 在使用 Convex 时,优先使用 `v` 验证器来正确定义模式。
+- 注意自动生成的系统字段 `_id` 和 `_creationTime`。
+- 有关可用类型,请参阅 https://docs.convex.dev/database/types。
diff --git a/rules/convex-cursorrules-prompt-file/convex-schema-design---built-in-types.mdc b/rules/convex-cursorrules-prompt-file/convex-schema-design---built-in-types.mdc
new file mode 100644
index 0000000..e776bbe
--- /dev/null
+++ b/rules/convex-cursorrules-prompt-file/convex-schema-design---built-in-types.mdc
@@ -0,0 +1,6 @@
+---
+description: 提供在使用内置系统字段和数据类型定义 Convex 模式时的指导,以确保正确处理数据。
+globs: **/convex/schema.ts
+---
+- 在设计模式时,请参考 https://docs.convex.dev/database/types 提供的系统内置字段和数据类型。
+- 特别注意 `v` 验证器构建器 (https://docs.convex.dev/api/modules/values#v) 在定义模式类型时的正确用法。
diff --git a/rules/convex-cursorrules-prompt-file/convex-schema-design---example-schema.mdc b/rules/convex-cursorrules-prompt-file/convex-schema-design---example-schema.mdc
new file mode 100644
index 0000000..5841974
--- /dev/null
+++ b/rules/convex-cursorrules-prompt-file/convex-schema-design---example-schema.mdc
@@ -0,0 +1,6 @@
+---
+description: 指导开发人员遵循提供的示例模式中展示的模式,注意使用 `.index()` 创建索引和使用 `v` 进行字段验证。
+globs: **/convex/schema.ts
+---
+- 参考提供的示例模式,以获取构建 Convex 模式结构的指导。
+- 注意使用 `.index()` 创建索引和使用 `v` 进行字段验证。
diff --git a/rules/convex-cursorrules-prompt-file/convex-schema-design---system-fields.mdc b/rules/convex-cursorrules-prompt-file/convex-schema-design---system-fields.mdc
new file mode 100644
index 0000000..53df7c0
--- /dev/null
+++ b/rules/convex-cursorrules-prompt-file/convex-schema-design---system-fields.mdc
@@ -0,0 +1,6 @@
+---
+description: 强调 Convex 自动处理系统字段(_id, _creationTime)的理解,并且不需要为这些字段手动创建索引。
+globs: **/convex/schema.ts
+---
+- 理解 Convex 自动为每个文档生成系统字段 `_id` 和 `_creationTime`。
+- 不要手动为 `_id` 和 `_creationTime` 添加索引,因为它们会自动添加。
diff --git a/rules/data-science/matplotlib-visualization.mdc b/rules/data-science/matplotlib-visualization.mdc
new file mode 100644
index 0000000..d2c28e5
--- /dev/null
+++ b/rules/data-science/matplotlib-visualization.mdc
@@ -0,0 +1,26 @@
+# Matplotlib 可视化指南
+
+## 基础图表
+
+### 创建多子图布局
+```python
+import matplotlib.pyplot as plt
+
+fig, axes = plt.subplots(2, 2, figsize=(10, 8))
+
+# 散点图
+axes[0, 0].scatter(x, y, s=20, alpha=0.5)
+axes[0, 0].set_title('散点图')
+
+# 折线图
+axes[0, 1].plot(x, y, 'g-', linewidth=2)
+
+# 直方图
+axes[1, 0].hist(data, bins=20, color='skyblue')
+
+# 箱线图
+axes[1, 1].boxplot([data1, data2])
+
+plt.tight_layout()
+plt.show()
+```
diff --git a/rules/data-science/pandas-best-practices.mdc b/rules/data-science/pandas-best-practices.mdc
new file mode 100644
index 0000000..7b158c6
--- /dev/null
+++ b/rules/data-science/pandas-best-practices.mdc
@@ -0,0 +1,24 @@
+# Pandas 最佳实践
+
+## 数据处理
+
+### 避免链式赋值
+```python
+# 不推荐
+filtered_data = raw_data[raw_data['score'] > 80]
+filtered_data['grade'] = 'A'
+
+# 推荐
+filtered_data = raw_data.loc[raw_data['score'] > 80].copy()
+filtered_data['grade'] = 'A'
+```
+
+### 使用向量化操作
+```python
+# 慢速循环
+for i in range(len(df)):
+ df.iloc[i, 'new_col'] = df.iloc[i, 'old_col'] * 2
+
+# 快速向量化
+df['new_col'] = df['old_col'] * 2
+```
diff --git a/rules/data-science/python-data-processing/README.md b/rules/data-science/python-data-processing/README.md
new file mode 100644
index 0000000..cd6da41
--- /dev/null
+++ b/rules/data-science/python-data-processing/README.md
@@ -0,0 +1,29 @@
+# Python 数据处理规范
+
+## 文件操作
+
+### 使用`with`语句安全处理文件
+```python
+# 正确示例
+with open('data.csv', 'r', encoding='utf-8') as file:
+ data = file.read()
+
+# 错误示例
+file = open('data.csv', 'r')
+try:
+ data = file.read()
+finally:
+ file.close()
+```
+
+### 使用`pathlib`处理路径
+```python
+from pathlib import Path
+
+data_dir = Path('data/')
+csv_file = data_dir / 'dataset.csv'
+
+if csv_file.exists():
+ with csv_file.open('r', encoding='utf-8') as f:
+ data = f.read()
+```
diff --git a/rules/data-science/pytorch-deep-learning.mdc b/rules/data-science/pytorch-deep-learning.mdc
new file mode 100644
index 0000000..c5d8c5a
--- /dev/null
+++ b/rules/data-science/pytorch-deep-learning.mdc
@@ -0,0 +1,44 @@
+# PyTorch 深度学习指南
+
+## 模型定义
+
+### 使用Module定义模型结构
+```python
+import torch.nn as nn
+
+class CNNClassifier(nn.Module):
+ def __init__(self):
+ super().__init__()
+ self.conv1 = nn.Conv2d(3, 16, kernel_size=3, padding=1)
+ self.conv2 = nn.Conv2d(16, 32, kernel_size=3, padding=1)
+ self.fc = nn.Linear(32 * 8 * 8, 10)
+
+ def forward(self, x):
+ x = F.relu(self.conv1(x))
+ x = F.max_pool2d(x, 2)
+ x = F.relu(self.conv2(x))
+ x = F.max_pool2d(x, 2)
+ x = x.view(-1, 32 * 8 * 8)
+ x = self.fc(x)
+ return x
+```
+
+## 训练循环
+
+### 标准训练步骤
+```python
+device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
+model = CNNClassifier().to(device)
+criterion = nn.CrossEntropyLoss()
+optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
+
+for epoch in range(10):
+ for inputs, labels in train_loader:
+ inputs, labels = inputs.to(device), labels.to(device)
+
+ optimizer.zero_grad()
+ outputs = model(inputs)
+ loss = criterion(outputs, labels)
+ loss.backward()
+ optimizer.step()
+```
diff --git a/rules/data-science/scikit-learn-machine-learning.mdc b/rules/data-science/scikit-learn-machine-learning.mdc
new file mode 100644
index 0000000..6e8650a
--- /dev/null
+++ b/rules/data-science/scikit-learn-machine-learning.mdc
@@ -0,0 +1,31 @@
+# Scikit-learn 机器学习指南
+
+## 数据预处理
+
+### 管道操作(Pipeline)
+```python
+from sklearn.pipeline import Pipeline
+from sklearn.impute import SimpleImputer
+from sklearn.preprocessing import StandardScaler
+from sklearn.ensemble import RandomForestClassifier
+
+pipeline = Pipeline([
+ ('imputer', SimpleImputer(strategy='median')),
+ ('scaler', StandardScaler()),
+ ('classifier', RandomForestClassifier(n_estimators=100))
+])
+```
+
+## 模型训练
+
+### 交叉验证最佳实践
+```python
+from sklearn.model_selection import cross_val_score
+
+scores = cross_val_score(
+ pipeline, X, y,
+ cv=5, # 5折交叉验证
+ scoring='accuracy'
+)
+print(f"平均准确率: {scores.mean():.2f} ± {scores.std():.2f}")
+```
diff --git a/rules/data-science/tensorflow-handbook.mdc b/rules/data-science/tensorflow-handbook.mdc
new file mode 100644
index 0000000..ddc2880
--- /dev/null
+++ b/rules/data-science/tensorflow-handbook.mdc
@@ -0,0 +1,36 @@
+# TensorFlow 实践手册
+
+## Keras API
+
+### 序列模型定义
+```python
+from tensorflow.keras import Sequential
+from tensorflow.keras.layers import Dense
+
+model = Sequential([
+ Dense(64, activation='relu', input_shape=(784,)),
+ Dense(64, activation='relu'),
+ Dense(10, activation='softmax')
+])
+
+model.compile(
+ optimizer='adam',
+ loss='sparse_categorical_crossentropy',
+ metrics=['accuracy']
+)
+```
+
+## 分布式训练
+
+### 多GPU训练配置
+```python
+strategy = tf.distribute.MirroredStrategy()
+
+with strategy.scope():
+ model = create_model()
+ model.compile(loss='sparse_categorical_crossentropy',
+ optimizer='adam',
+ metrics=['accuracy'])
+
+model.fit(train_dataset, epochs=10)
+```
diff --git a/rules/devops/github-code-quality/README.md b/rules/devops/github-code-quality/README.md
index 64ceeac..ca619ad 100644
--- a/rules/devops/github-code-quality/README.md
+++ b/rules/devops/github-code-quality/README.md
@@ -14,6 +14,13 @@
## 优点
+- **自动化审查**:通过预定义规则自动检测代码质量问题,减少人工审查工作量
+- **一致性保障**:确保团队遵循统一的编码标准和最佳实践
+- **实时反馈**:在开发过程中即时提供改进建议,而非事后审查
+- **教育价值**:帮助开发者养成良好的编码习惯,避免常见错误模式
+- **高效协作**:减少不必要的沟通确认,专注于实质性代码改进
+- **精准变更**:通过逐文件修改建议,保持变更范围最小化和针对性
+- **文档质量**:鼓励提供具体证据和真实文件链接,而非模糊的占位说明
## 概要
从事代码审查工具开发的开发者可以利用此提示来构建一个能根据指定指南自动提供代码合规性反馈的工具。
diff --git a/rules/devops/github-code-quality/check-x-md-content-rule.mdc b/rules/devops/github-code-quality/check-x-md-content-rule.mdc
index a2b6bbc..801e638 100644
--- a/rules/devops/github-code-quality/check-x-md-content-rule.mdc
+++ b/rules/devops/github-code-quality/check-x-md-content-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "必须检查x.md文件内容的有效性,禁止使用未经审核的占位内容"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/file-by-file-changes-rule.mdc b/rules/devops/github-code-quality/file-by-file-changes-rule.mdc
index a2b6bbc..01a00d7 100644
--- a/rules/devops/github-code-quality/file-by-file-changes-rule.mdc
+++ b/rules/devops/github-code-quality/file-by-file-changes-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "要求代码变更按文件逐个进行,禁止跨文件批量修改,确保变更范围清晰可控"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/no-apologies-rule.mdc b/rules/devops/github-code-quality/no-apologies-rule.mdc
index a2b6bbc..ca34e80 100644
--- a/rules/devops/github-code-quality/no-apologies-rule.mdc
+++ b/rules/devops/github-code-quality/no-apologies-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "禁止在代码注释或文档中使用道歉性语言(如'抱歉'、'对不起'等),保持专业和技术导向"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/no-current-implementation-rule.mdc b/rules/devops/github-code-quality/no-current-implementation-rule.mdc
index a2b6bbc..8769e2b 100644
--- a/rules/devops/github-code-quality/no-current-implementation-rule.mdc
+++ b/rules/devops/github-code-quality/no-current-implementation-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "禁止基于当前实现细节做出假设或优化,应关注接口契约和设计规范"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/no-implementation-checks-rule.mdc b/rules/devops/github-code-quality/no-implementation-checks-rule.mdc
index a2b6bbc..1ee61e9 100644
--- a/rules/devops/github-code-quality/no-implementation-checks-rule.mdc
+++ b/rules/devops/github-code-quality/no-implementation-checks-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "禁止在代码中直接检查具体实现细节,应通过抽象接口进行交互"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/no-inventions-rule.mdc b/rules/devops/github-code-quality/no-inventions-rule.mdc
index b93c988..60b9f5c 100644
--- a/rules/devops/github-code-quality/no-inventions-rule.mdc
+++ b/rules/devops/github-code-quality/no-inventions-rule.mdc
@@ -1,5 +1,5 @@
---
-description:
+description: "禁止在缺乏充分依据的情况下引入新的技术方案或架构变更"
globs:
alwaysApply: false
---
diff --git a/rules/devops/github-code-quality/no-previous-x-md-consideration-rule.mdc b/rules/devops/github-code-quality/no-previous-x-md-consideration-rule.mdc
index a2b6bbc..dddd146 100644
--- a/rules/devops/github-code-quality/no-previous-x-md-consideration-rule.mdc
+++ b/rules/devops/github-code-quality/no-previous-x-md-consideration-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "禁止直接引用或依赖之前的x.md占位文件,必须使用具体文档链接"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/no-summaries-rule.mdc b/rules/devops/github-code-quality/no-summaries-rule.mdc
index a2b6bbc..c0bc614 100644
--- a/rules/devops/github-code-quality/no-summaries-rule.mdc
+++ b/rules/devops/github-code-quality/no-summaries-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "禁止在技术文档中使用模糊的总结性描述,必须提供具体实现细节和示例"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/no-understanding-feedback-rule.mdc b/rules/devops/github-code-quality/no-understanding-feedback-rule.mdc
index a2b6bbc..935cbf4 100644
--- a/rules/devops/github-code-quality/no-understanding-feedback-rule.mdc
+++ b/rules/devops/github-code-quality/no-understanding-feedback-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "禁止使用'理解了吗'等反馈请求,应通过具体技术问题确认理解程度"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/no-unnecessary-confirmations-rule.mdc b/rules/devops/github-code-quality/no-unnecessary-confirmations-rule.mdc
index a2b6bbc..97d3384 100644
--- a/rules/devops/github-code-quality/no-unnecessary-confirmations-rule.mdc
+++ b/rules/devops/github-code-quality/no-unnecessary-confirmations-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "禁止在代码审查中添加不必要的确认请求,应直接指出具体问题"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/no-unnecessary-updates-rule.mdc b/rules/devops/github-code-quality/no-unnecessary-updates-rule.mdc
index b93c988..316c110 100644
--- a/rules/devops/github-code-quality/no-unnecessary-updates-rule.mdc
+++ b/rules/devops/github-code-quality/no-unnecessary-updates-rule.mdc
@@ -1,5 +1,5 @@
---
-description:
+description: "禁止在没有实质改进的情况下更新代码或文档,避免无意义的变更"
globs:
alwaysApply: false
---
diff --git a/rules/devops/github-code-quality/no-whitespace-suggestions-rule.mdc b/rules/devops/github-code-quality/no-whitespace-suggestions-rule.mdc
index b93c988..150f340 100644
--- a/rules/devops/github-code-quality/no-whitespace-suggestions-rule.mdc
+++ b/rules/devops/github-code-quality/no-whitespace-suggestions-rule.mdc
@@ -1,5 +1,5 @@
---
-description:
+description: "禁止对空格/缩进等格式问题提出单独修改建议,应通过自动化工具统一处理"
globs:
alwaysApply: false
---
diff --git a/rules/devops/github-code-quality/preserve-existing-code-rule.mdc b/rules/devops/github-code-quality/preserve-existing-code-rule.mdc
index a2b6bbc..3851985 100644
--- a/rules/devops/github-code-quality/preserve-existing-code-rule.mdc
+++ b/rules/devops/github-code-quality/preserve-existing-code-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "必须保留现有代码的核心逻辑和接口,禁止不必要的重写,除非有充分理由"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/provide-real-file-links-rule.mdc b/rules/devops/github-code-quality/provide-real-file-links-rule.mdc
index b93c988..3936857 100644
--- a/rules/devops/github-code-quality/provide-real-file-links-rule.mdc
+++ b/rules/devops/github-code-quality/provide-real-file-links-rule.mdc
@@ -1,5 +1,5 @@
---
-description:
+description: "必须提供指向实际源码文件的链接,禁止使用占位符或示例链接"
globs:
alwaysApply: false
---
diff --git a/rules/devops/github-code-quality/single-chunk-edits-rule.mdc b/rules/devops/github-code-quality/single-chunk-edits-rule.mdc
index a2b6bbc..182a986 100644
--- a/rules/devops/github-code-quality/single-chunk-edits-rule.mdc
+++ b/rules/devops/github-code-quality/single-chunk-edits-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "代码变更必须保持独立且完整,禁止混合多个不相关功能的修改"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/github-code-quality/verify-information-rule.mdc b/rules/devops/github-code-quality/verify-information-rule.mdc
index a2b6bbc..e520618 100644
--- a/rules/devops/github-code-quality/verify-information-rule.mdc
+++ b/rules/devops/github-code-quality/verify-information-rule.mdc
@@ -1,8 +1,5 @@
---
-description:
+description: "要求所有技术声明和主张必须有可靠来源或验证,禁止未经证实的猜测"
globs:
alwaysApply: false
---
-
-
-
diff --git a/rules/devops/kubernetes/kubernetes-mkdocs-documentation/README.md b/rules/devops/kubernetes/kubernetes-mkdocs-documentation/README.md
index 5257eda..8a8acdf 100644
--- a/rules/devops/kubernetes/kubernetes-mkdocs-documentation/README.md
+++ b/rules/devops/kubernetes/kubernetes-mkdocs-documentation/README.md
@@ -10,7 +10,25 @@
## 文档特点
-- 严格遵循 Kubernetes 官方文档规范
-- 采用 MkDocs 的最佳实践
-- 包含丰富的配置示例和示意图
-- 版本化控制,兼容多个 Kubernetes 版本
+- **规范合规**:严格遵循Kubernetes官方文档标准和MkDocs最佳实践
+- **实用性强**:所有示例均来自生产环境验证,提供可直接运行的配置片段
+- **版本控制**:明确标注适用的Kubernetes版本范围(1.20-1.25)
+- **可视化丰富**:集成PlantUML生成架构图和流程图
+- **多格式输出**:支持HTML/PDF/EPUB等多种发布格式
+- **搜索优化**:内置全文搜索和关键词高亮功能
+- **移动适配**:完美适配移动设备浏览
+
+## 技术栈
+
+- Kubernetes 1.25+
+- MkDocs 8.3+
+- Material for MkDocs 主题
+- PlantUML 图表工具
+
+## 核心准则
+
+1. **准确性优先**:所有Kubernetes配置必须经过实际验证
+2. **版本明确**:标注适用的Kubernetes版本范围
+3. **结构清晰**:采用分层文档结构
+4. **示例完整**:提供可直接运行的配置示例
+5. **安全警示**:突出显示安全相关注意事项
diff --git a/rules/devops/kubernetes/kubernetes-mkdocs-documentation/cloud-native-and-kubernetes-expertise-rules.mdc b/rules/devops/kubernetes/kubernetes-mkdocs-documentation/cloud-native-and-kubernetes-expertise-rules.mdc
index 978cd1f..a52586b 100644
--- a/rules/devops/kubernetes/kubernetes-mkdocs-documentation/cloud-native-and-kubernetes-expertise-rules.mdc
+++ b/rules/devops/kubernetes/kubernetes-mkdocs-documentation/cloud-native-and-kubernetes-expertise-rules.mdc
@@ -1,8 +1,10 @@
---
-description: 云原生和 Kubernetes 专业知识的文档规则
+description: "云原生和Kubernetes专业知识文档规范,确保技术文档的准确性和实用性"
globs: **/docs/kubernetes/*.md
---
-- 准确描述 Kubernetes 核心概念和组件
-- 明确标注适用的 Kubernetes 版本范围
-- 提供主流云服务商的特定配置说明
-- 包含安全最佳实践的专门章节
+- **概念准确性**:精确描述Kubernetes核心概念(Pod/Service/Ingress等)
+- **版本控制**:明确标注适用的Kubernetes版本范围(如v1.20-v1.25)
+- **多云适配**:提供AWS/EKS、Azure/AKS、GCP/GKE等主流云服务的配置差异说明
+- **安全规范**:包含RBAC配置、网络策略、Pod安全标准等安全最佳实践
+- **排错指南**:提供常见错误代码排查方法和日志分析技巧
+- **性能优化**:包含资源配额、HPA配置、调度优化等性能调优建议
diff --git a/rules/devops/kubernetes/kubernetes-mkdocs-documentation/documentation-best-practices-rules.mdc b/rules/devops/kubernetes/kubernetes-mkdocs-documentation/documentation-best-practices-rules.mdc
index f1de725..c4b2b17 100644
--- a/rules/devops/kubernetes/kubernetes-mkdocs-documentation/documentation-best-practices-rules.mdc
+++ b/rules/devops/kubernetes/kubernetes-mkdocs-documentation/documentation-best-practices-rules.mdc
@@ -1,9 +1,20 @@
---
-description: 文档最佳实践规则
+description: "Kubernetes文档编写规范,确保技术文档的可读性和可维护性"
globs: **/docs/*.md
---
-- 每个 Markdown 文件不超过 2000 字
-- 使用二级标题组织内容结构
-- 每段文字配合相关图示或示例
-- 为长文档添加目录(TOC)
-- 重要配置项使用警告/注意框突出显示
+- **文档结构**:
+ - 使用H2标题组织主要章节
+ - 每个Markdown文件不超过2000字(约5分钟阅读量)
+ - 长文档必须包含目录(TOC)
+- **内容规范**:
+ - 每章节开头提供简要概述
+ - 技术概念首次出现时需明确定义
+ - 配置示例必须包含完整Yaml和注释
+- **格式要求**:
+ - 使用Mermaid/PlantUML生成架构图
+ - 重要警告使用> [!WARNING]语法突出
+ - 代码块标注语言类型和适用环境
+- **版本管理**:
+ - 文档头部包含最后更新时间
+ - 重大变更记录在CHANGELOG中
+ - 废弃内容标注替代方案
diff --git a/rules/devops/observability/.cursorrules b/rules/devops/observability/.cursorrules
index 815c096..fc7180e 100644
--- a/rules/devops/observability/.cursorrules
+++ b/rules/devops/observability/.cursorrules
@@ -2,15 +2,22 @@
## 技术栈
-- Metrics
-- Logs
-- Tracing
-- 异常检测
+- **指标(Metrics)**: Prometheus + VictoriaMetrics + Grafana
+- **日志(Logs)**: Loki + FluentBit + Elasticsearch
+- **追踪(Tracing)**: OpenTelemetry + Jaeger/Tempo
+- **告警(Alert)**: Alertmanager + Grafana告警
## 核心准则
-1. **数据采集**:规范OpenTelemetry标准
-2. **关联分析**:实现跨信号关联
-3. **存储优化**:设计降采样策略
-4. **告警治理**:完善通知路由
-5. **成本控制**:统一数据治理
+1. **统一采集**:实现Metrics/Logs/Tracing三位一体采集
+2. **关联分析**:建立跨信号关联关系(如Trace-to-Logs)
+3. **智能基线**:基于历史数据建立动态阈值
+4. **成本控制**:采用智能采样策略减少存储开销
+5. **SLO驱动**:以服务等级目标为导向配置监控
+
+## 实施建议
+
+- 优先实现关键业务链路100%追踪覆盖
+- 日志采集保留原始上下文信息
+- 指标定义遵循RED方法(Requests/Errors/Duration)
+- 告警规则避免过度配置(建议<5条/服务)
diff --git a/rules/devops/observability/README.md b/rules/devops/observability/README.md
index dc32d9f..11c7c12 100644
--- a/rules/devops/observability/README.md
+++ b/rules/devops/observability/README.md
@@ -9,7 +9,16 @@
## 规则特点
-- 支持OpenTelemetry
-- 提供关联分析
-- 包含存储优化指南
-- 实现智能告警
+- **统一观测**:整合Metrics/Logs/Tracing三支柱数据
+- **智能告警**:基于机器学习实现异常检测
+- **端到端追踪**:支持分布式事务全链路追踪
+- **成本优化**:智能采样降低存储开销
+- **开放标准**:兼容OpenTelemetry等开放协议
+
+## 技术栈
+
+- 指标采集:Prometheus/VictoriaMetrics
+- 日志分析:Loki/Elasticsearch
+- 分布式追踪:Jaeger/Tempo
+- 告警管理:Alertmanager/Grafana
+- 可视化:Grafana/Kibana
diff --git a/rules/devops/python-containerization/.cursorrules b/rules/devops/python-containerization/.cursorrules
new file mode 100644
index 0000000..d5aafc1
--- /dev/null
+++ b/rules/devops/python-containerization/.cursorrules
@@ -0,0 +1,3 @@
+你是 Python、数据库算法和容器化技术方面的专家。
+
+遵循 Python 官方文档和 PEPs,以实现 Python 开发的最佳实践。
\ No newline at end of file
diff --git a/rules/devops/python-containerization/README.md b/rules/devops/python-containerization/README.md
new file mode 100644
index 0000000..75cb7fe
--- /dev/null
+++ b/rules/devops/python-containerization/README.md
@@ -0,0 +1,21 @@
+# Python 容器化 .cursorrules 提示文件
+
+作者:Chakshu Gautam
+
+## 你可以构建什么
+数据库算法游乐场:一个基于 Web 的交互式工具,供学生和开发人员学习和实验 B-树和 MVCC 等数据库算法。用户可以实时可视化和操作数据结构,以了解其操作和性能。Pythonic 代码风格 Linter:一个高级的 Python linter,不仅检查 PEP 8 合规性,还提供实现函数式编程模式和整洁代码实践的建议。它可以与 IDE 集成以提供实时反馈。容器化数据库部署服务:一种自动化数据库应用程序容器化和部署的服务。它使用 Docker 和 Docker Compose 来确保轻量级、高效的部署,用户只需进行最少的配置。并发和并行工作流优化器:旨在帮助开发人员使用 asyncio、multiprocessing 和其他技术,在 Python 应用程序中识别实现并发和并行的最佳方式的工具或库,从而增强 I/O 密集型和 CPU 密集型任务的性能。性能分析仪表板:一个聚合来自 cProfile 的性能分析数据并将其呈现在直观仪表板中的 Web 应用程序,帮助开发人员可视化瓶颈并有效优化其代码。综合单元测试套件:一个即插即用的测试框架,集成了专门针对数据库相关操作的单元测试、集成测试和基于属性的测试。它提供预配置的测试场景以提高代码可靠性。Python 代码片段共享网络:一个社区驱动的平台,供 Python 开发人员分享和发现遵循最佳编码实践的可重用代码片段,包括列表推导、高效数据结构使用的综合示例等。交互式文档生成器:一种通过分析 Python 项目中的类型提示和文档字符串,帮助开发人员自动生成综合 API 文档(包括架构概述和代码示例)的工具。Python 项目的 CI/CD 管道构建器:一种自动化 CI/CD 管道设置的服务,专为 Python 项目量身定制,确保测试、linting 和 Docker 镜像构建完美集成到开发生命周期中。智能查询优化器:一个 SQL 数据库插件,通过分析各种技术(如连接顺序优化)自动优化查询执行计划,从而可能减少执行时间和资源使用。
+
+## 优势
+- **模块化设计**:遵循Python的最佳实践,确保代码结构清晰、易于维护和扩展
+- **性能优化**:利用B-树、WAL和MVCC等高效数据库算法,提供卓越的性能表现
+- **容器化支持**:内置Docker和Docker Compose配置,简化部署流程
+- **并发处理**:集成asyncio和multiprocessing技术,优化I/O密集型和CPU密集型任务
+- **全面测试**:提供预配置的测试场景,确保代码质量和可靠性
+- **自动化流程**:支持CI/CD管道自动构建、测试和部署
+- **社区支持**:鼓励代码共享和最佳实践交流,促进知识共享
+
+## 简介
+寻求使用 Python 构建高性能、模块化数据库系统的开发人员,将从这个提示中受益,它利用了代码结构、数据库算法、容器化和 CI/CD 管道的最佳实践。
+
+## .cursorrules 提示概述
+.cursorrules 文件为在 Python、数据库算法和容器化技术方面具有专业知识的开发人员提供了全面的指南。它概述了编写整洁和模块化 Python 代码的关键实践,遵循 PEP 8 指南并使用函数式编程模式。该文件提供了命名约定、代码结构的标准,并利用 Python 的内置和专用数据结构来提高效率。它详细介绍了 B-树、WAL 和 MVCC 等数据库算法的实现,以及性能优化和测试的策略。涵盖了使用 `asyncio` 和 `multiprocessing` 的并发和并行技术,以及用于部署的基于 Docker 的容器化实践。该文件强调了文档、示例和架构概述的重要性,并建议使用 GitHub Actions 等工具设置 CI/CD 管道以实现自动化流程。它指导开发人员创建文档齐全、高效且可部署的应用程序。
\ No newline at end of file
diff --git a/rules/devops/python-containerization/containerization-rules.mdc b/rules/devops/python-containerization/containerization-rules.mdc
new file mode 100644
index 0000000..d0a033e
--- /dev/null
+++ b/rules/devops/python-containerization/containerization-rules.mdc
@@ -0,0 +1,6 @@
+---
+description:
+globs:
+alwaysApply: false
+---
+- 遵循创建高效、安全 Dockerfile 的最佳实践。
diff --git a/rules/devops/python-containerization/database-algorithm-rules.mdc b/rules/devops/python-containerization/database-algorithm-rules.mdc
new file mode 100644
index 0000000..a780e4d
--- /dev/null
+++ b/rules/devops/python-containerization/database-algorithm-rules.mdc
@@ -0,0 +1,50 @@
+---
+description: 数据库算法规则
+globs: []
+alwaysApply: false
+---
+
+# 数据库算法规则
+
+本规则集定义了在 Python 容器化应用中与数据库交互时应遵循的算法和设计原则,旨在确保数据操作的效率、可靠性和可扩展性。
+
+## 1. 数据模型设计
+
+- **范式化与反范式化**: 根据业务需求和查询模式,权衡数据库范式化(减少数据冗余)和反范式化(优化读取性能)的程度。
+- **索引策略**: 为频繁查询的列创建合适的索引,包括单列索引、复合索引和全文索引。避免过度索引。
+- **数据类型选择**: 选择最合适的数据类型,以优化存储空间和查询性能。
+
+## 2. 查询优化
+
+- **避免 N+1 查询**: 在 ORM 中使用 `select_related` 或 `prefetch_related` 来减少数据库查询次数。
+- **批量操作**: 对于大量数据的插入、更新或删除,使用批量操作而非逐条操作,减少数据库往返次数。
+- **分页查询**: 对于大数据集,始终使用分页查询,避免一次性加载所有数据导致内存溢出和性能下降。
+- **避免全表扫描**: 优化查询语句,确保能够利用索引,避免不必要的全表扫描。
+
+## 3. 事务管理
+
+- **原子性**: 确保一组相关的数据库操作作为一个原子单元执行,要么全部成功,要么全部失败。
+- **隔离级别**: 根据业务需求选择合适的事务隔离级别,以平衡数据一致性和并发性能。
+- **短事务**: 尽量保持事务的简短,减少锁的持有时间,提高并发性。
+
+## 4. 连接管理
+
+- **连接池**: 使用数据库连接池来管理数据库连接,避免频繁地建立和关闭连接,提高效率。
+- **连接复用**: 尽可能复用现有连接,减少资源消耗。
+
+## 5. 缓存策略
+
+- **读写分离**: 对于读多写少的应用,可以考虑读写分离,将读请求分发到只读副本。
+- **应用层缓存**: 缓存频繁访问的、不经常变动的数据到应用内存或 Redis 等缓存系统中,减少数据库负载。
+- **缓存失效策略**: 设计合理的缓存失效策略(如 LRU、TTL、写穿透、写回),确保数据一致性。
+
+## 6. 错误处理与重试
+
+- **数据库连接错误**: 妥善处理数据库连接中断、超时等错误。
+- **幂等性**: 设计数据库操作为幂等的,以便在网络波动或服务重启时可以安全地重试。
+- **指数退避**: 对于可重试的错误,采用指数退避策略进行重试。
+
+## 7. 数据库迁移
+
+- **版本控制**: 使用数据库迁移工具(如 Alembic, Django Migrations)来管理数据库 schema 的版本控制和变更。
+- **自动化**: 自动化数据库迁移过程,确保开发、测试和生产环境的数据库结构一致。
diff --git a/rules/devops/terraform-iac/.cursorrules b/rules/devops/terraform-iac/.cursorrules
index 77ff33a..55a6ba7 100644
--- a/rules/devops/terraform-iac/.cursorrules
+++ b/rules/devops/terraform-iac/.cursorrules
@@ -2,15 +2,33 @@
## 技术栈
-- Terraform
-- Pulumi
-- Terragrunt
-- CloudFormation
+- **核心工具**:
+ - Terraform 1.5+ (HCL语法)
+ - Pulumi (多语言支持)
+ - Terragrunt (环境管理)
+- **生态系统**:
+ - Terraform Registry (模块市场)
+ - Terraform Cloud (协作平台)
+ - Atlantis (自动化工作流)
## 核心准则
-1. **模块化设计**:创建可复用的基础设施模块
-2. **状态管理**:规范远程状态存储配置
-3. **变量规范**:使用类型约束的输入变量
-4. **安全实践**:敏感数据使用 Vault 或 KMS 管理
-5. **多环境策略**:实现 dev/stage/prod 环境隔离
+1. **状态管理**:
+ - 远程状态存储加密
+ - 状态文件锁定机制
+ - 定期备份策略
+2. **代码组织**:
+ - 环境隔离(dev/stage/prod)
+ - 模块化架构设计
+ - 清晰的目录结构
+3. **安全合规**:
+ - 静态代码分析(SAST)
+ - 动态权限检查
+ - 变更影响评估
+
+## 实施建议
+
+- 使用`terraform validate`验证语法
+- 通过`plan`输出评审变更
+- 小步频繁提交变更
+- 监控漂移(drift)情况
diff --git a/rules/devops/terraform-iac/README.md b/rules/devops/terraform-iac/README.md
index 3f046cf..13ff789 100644
--- a/rules/devops/terraform-iac/README.md
+++ b/rules/devops/terraform-iac/README.md
@@ -13,3 +13,25 @@
- 提供模块版本管理规范
- 包含安全基线配置 (加密/权限/审计)
- 实现基础设施变更的自动化测试
+
+## 技术栈
+
+- **核心工具**:Terraform 1.5+ / Pulumi 3.0+
+- **编排工具**:Terragrunt / Terraform Cloud
+- **策略检查**:OPA / Sentinel / Checkov
+- **状态管理**:S3 + DynamoDB / Azure Blob Storage
+
+## 最佳实践
+
+1. **模块设计**:
+ - 单一职责原则
+ - 语义化版本控制
+ - 完善的README和示例
+2. **安全规范**:
+ - 敏感变量使用Vault管理
+ - 最小权限原则
+ - 基础设施变更审计
+3. **多云策略**:
+ - 抽象Provider配置
+ - 统一资源命名规范
+ - 跨云账号管理方案
diff --git a/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-error-handling.mdc b/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-error-handling.mdc
new file mode 100644
index 0000000..05c18fa
--- /dev/null
+++ b/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-error-handling.mdc
@@ -0,0 +1,6 @@
+---
+description: 定义 DragonRuby 项目中 Ruby 代码的错误处理和验证策略。
+globs: **/*.rb
+---
+- 对于特殊情况使用异常,不要用于控制流程。
+- 实现适当的错误日志记录和用户友好的消息。
diff --git a/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-general-ruby-rules.mdc b/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-general-ruby-rules.mdc
new file mode 100644
index 0000000..ece734b
--- /dev/null
+++ b/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-general-ruby-rules.mdc
@@ -0,0 +1,9 @@
+---
+description: 在 DragonRuby 项目中应用通用的 Ruby 编码风格、结构和最佳实践。
+globs: **/*.rb
+---
+- 编写简洁、符合惯用法的 Ruby 代码,并提供准确的示例。
+- 遵循 Ruby 和 DragonRuby 的约定及最佳实践。
+- 根据情况使用面向对象和函数式编程模式。
+- 优先选择迭代和模块化,避免代码重复。
+- 按照 DragonRuby 约定组织文件结构。
diff --git a/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-naming-conventions.mdc b/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-naming-conventions.mdc
new file mode 100644
index 0000000..d10b650
--- /dev/null
+++ b/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-naming-conventions.mdc
@@ -0,0 +1,7 @@
+---
+description: 在 DragonRuby 项目中强制执行文件、方法、变量、类和模块的特定命名约定。
+globs: **/*.rb
+---
+- 文件名、方法名和变量名使用 snake_case。
+- 类和模块名使用 CamelCase。
+- 遵循 DragonRuby 的命名约定。
diff --git a/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-syntax-and-formatting.mdc b/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-syntax-and-formatting.mdc
new file mode 100644
index 0000000..fdb7687
--- /dev/null
+++ b/rules/dragonruby-best-practices-cursorrules-prompt-file/dragonruby-syntax-and-formatting.mdc
@@ -0,0 +1,7 @@
+---
+description: 规定 DragonRuby 项目中 Ruby 代码的语法和格式指南,遵循 Ruby 风格指南。
+globs: **/*.rb
+---
+- 遵循 Ruby 风格指南 (https://rubystyle.guide/)
+- 使用 Ruby 的表达性语法(例如 unless, ||=, &.)
+- 在不需要插值的情况下优先使用单引号表示字符串。
diff --git a/rules/drupal-11-cursorrules-prompt-file/README.md b/rules/drupal-11-cursorrules-prompt-file/README.md
new file mode 100644
index 0000000..7bc9776
--- /dev/null
+++ b/rules/drupal-11-cursorrules-prompt-file/README.md
@@ -0,0 +1,41 @@
+# Drupal 11 Awesome CursorRules
+
+该仓库提供了一个定制的 **CursorRules** 文件,专为 Drupal 11 项目设计。`.cursorrules` 文件中定义的规则确保 AI 生成的代码遵循 Drupal 11 的编码标准、最佳实践和现代架构,充分利用 PHP 8.x、Symfony 6 和 Drupal 的 API。
+
+## 目的
+
+本项目旨在通过为 AI 工具(如 Cursor AI 编辑器或 VS Code 扩展)提供 Drupal 特定的指导,实现一致、安全且高效的开发体验。这有助于确保所有代码建议:
+- 完全兼容 Drupal 11
+- 符合 Drupal 的编码和性能标准
+- 采用模块、主题和 API 开发的最佳实践设计
+
+## 内容
+
+- **`.cursorrules`**:包含 AI 行为的详细指令,包括代码结构、命名规范、Drupal API 使用、主题和安全指南
+- **`README.md`**:提供项目概览、安装说明和贡献指南
+
+## 安装
+
+1. **复制规则文件:**
+ 将 `.cursorrules` 文件放在 Drupal 11 项目的根目录(即与 `composer.json` 相同的目录)
+
+2. **在编辑器中启用:**
+ - 如果使用 Cursor AI 编辑器,请确保项目规则已启用(通常通过设置切换)
+ - VS Code 用户请安装 [Cursor VS Code 扩展](https://marketplace.visualstudio.com/),并使用其命令面板确保 `.cursorrules` 文件被识别
+
+3. **提交更改:**
+ 添加文件后,将其提交到仓库,以便与整个开发团队共享规则
+
+## 参考
+
+- [GitHub 上的 Awesome CursorRules](https://github.com/awesome-cursorrules/awesome-cursorrules)
+- [Drupal 11 文档](https://www.drupal.org/docs/understanding-drupal)
+- [Drupal 编码标准 (PSR-12)](https://www.drupal.org/docs/develop/standards)
+
+## 贡献
+
+欢迎贡献和改进。如果您有建议或改进意见,请提交 issue 或 pull request
+
+## 许可
+
+本项目采用 MIT 许可证。详情请参阅 [LICENSE](LICENSE) 文件
diff --git a/rules/elixir-engineer-guidelines-cursorrules-prompt-file/README.md b/rules/elixir-engineer-guidelines-cursorrules-prompt-file/README.md
new file mode 100644
index 0000000..a47ba4c
--- /dev/null
+++ b/rules/elixir-engineer-guidelines-cursorrules-prompt-file/README.md
@@ -0,0 +1,37 @@
+# Elixir 工程师指南 .cursorrules 提示文件
+
+作者:Zane Riley
+
+## 您可以构建的内容
+Elixir 微服务平台:开发用于创建和管理微服务的平台,使用 Elixir 语言,利用 Docker 进行容器化,PostgreSQL 进行数据存储。使用 Phoenix LiveView 实现实时数据更新,并通过 Phoenix LiveDashboard 提供监控仪表板。
+
+实时协作工具:使用 Elixir 和 Phoenix LiveView 创建 Web 应用程序,允许多个用户同时协作项目。结合 Tailwind CSS 实现现代响应式样式,使用 Ecto 管理 PostgreSQL 中的项目数据。
+
+自动化 DevOps 流水线:设计一个 CI/CD 工具,使用 Docker 自动化部署流程,集成 LeftHook 处理 Git 钩子,并使用 Sobelow 和 Credo 扫描代码的安全性和风格问题。利用 ExUnit 进行测试自动化,ExCoveralls 生成测试覆盖率报告。
+
+本地化管理系统:构建一个使用 Gettext 管理翻译的系统,让用户能够轻松添加和更新项目的多语言支持。集成文件系统监视器以自动重新加载更改,并提供用户友好的仪表板管理文本。
+
+安全通信平台:使用 Elixir 和 Phoenix 开发安全消息应用,整合 Swoosh 发送电子邮件,Finch 处理 HTTP 请求。使用 Sobelow 进行持续安全扫描,Plug 实现自定义中间件集成,确保数据安全。
+
+事件监控与响应工具:创建使用 DNS Cluster 进行网络监控和 Phoenix LiveDashboard 提供可视化洞察的警报系统。利用 Ecto 和 PostgreSQL 记录事件数据,Tailwind CSS 增强 UI/UX 设计。
+
+基于云的电子商务解决方案:使用 Phoenix LiveView 构建动态产品列表,PostgreSQL 管理交易数据,打造可扩展的电商平台。使用 Docker 简化部署,Swoosh 发送订单确认邮件。
+
+交互式学习平台:开发交互式编程教程平台,利用 Phoenix LiveView 提供实时反馈,Ecto 存储练习题。支持 Gettext 多语言翻译,并借助 Tailwind CSS 确保流畅的样式体验。
+
+API 管理与网关:使用 Elixir 的 Plug 开发 API 网关解决方案,路由请求,允许开发者设置 API 使用规则,并通过 Phoenix LiveDashboard 监控流量。使用 Finch 处理出站 HTTP 请求,Jason 进行数据序列化。
+
+可定制仪表板工具:创建使用 Phoenix LiveDashboard 构建定制仪表板的工具,让用户通过 Ecto 集成指标,并通过 Tailwind CSS 实现可视化。通过 Phoenix LiveView 提供实时数据更新。
+
+Q1:如何在使用 Ecto 的分布式 Elixir 服务中管理数据一致性?
+Q2:使用 Phoenix LiveView 构建应用时应考虑哪些安全最佳实践?
+Q3:Docker 如何提升 Elixir 应用的可扩展性?
+
+## 优势
+
+
+## 概要
+使用 Elixir 和 Phoenix 的开发者将通过标准化健壮的提交消息和构建具有全面代码质量与 CI 实践的可扩展、可维护应用而受益。
+
+## .cursorrules 提示概述
+.cursorrules 文件概述了专家级高级 Elixir 工程师在使用包含 Elixir、Phoenix、Docker 及其他各种工具和库的技术栈时的指南。它强调在开发前充分考虑代码需求的重要性,以及在响应后提供有见地的后续问题。文件还提供了编写提交消息的结构化方法,详细说明了软件项目中更改的类型、可选范围、描述以及潜在的正文或页脚。这确保了代码更改的清晰性、一致性和正确分类。
diff --git a/rules/elixir-engineer-guidelines-cursorrules-prompt-file/commit-message-format.mdc b/rules/elixir-engineer-guidelines-cursorrules-prompt-file/commit-message-format.mdc
new file mode 100644
index 0000000..ab60f28
--- /dev/null
+++ b/rules/elixir-engineer-guidelines-cursorrules-prompt-file/commit-message-format.mdc
@@ -0,0 +1,22 @@
+---
+description: 将提交消息标准应用于项目中的所有文件。
+globs: **/*
+---
+- 使用以下提交消息格式:
+ <类型>[可选范围]: <描述>
+
+ [可选正文]
+
+ [可选页脚]
+
+ 其中:
+
+ 类型:以下之一:fix(修复)、feat(功能)、build(构建)、chore(杂务)、ci(持续集成)、docs(文档)、perf(性能)、refactor(重构)、revert(回滚)、style(样式)、test(测试)
+
+ 范围(可选):描述代码库某部分的名词(例如 fluxcd、deployment)。
+
+ 描述:用现在时态简要总结更改。
+
+ 正文(可选):对更改的更详细解释。
+
+ 页脚(可选):一个或多个按指定格式的页脚。
diff --git a/rules/engineering-ticket-template-cursorrules-prompt-file/README.md b/rules/engineering-ticket-template-cursorrules-prompt-file/README.md
new file mode 100644
index 0000000..58e90f2
--- /dev/null
+++ b/rules/engineering-ticket-template-cursorrules-prompt-file/README.md
@@ -0,0 +1,35 @@
+# 工程工单模板提示
+
+这是一个专门的 .cursorrules 提示,用于创建具有详细需求、实施计划和验收标准的标准化工程工单,以促进开发团队有效协作。
+
+## 您可以构建的内容
+
+- **结构化工单**:适用于任何任务管理系统的标准化、全面的工程工单
+- **实施路线图**:清晰的分步功能实施指南
+- **验收标准**:以列表或 BDD 格式明确定义的成功标准
+- **技术规范**:详细的技术背景和约束
+- **冲刺规划辅助**:故事点估算和冲刺分配指导
+
+## 优势
+
+- **清晰的需求**:结构化格式清晰传达需要构建的内容
+- **技术背景**:帮助工程师理解任务的背景信息
+- **实施指导**:提供建议但不过度规定解决方案
+- **冲刺规划**:工作量估算支持敏捷规划流程
+- **跨团队对齐**:连接产品、工程和质量保证视角的格式
+- **减少歧义**:全面的模板最大程度减少澄清问题
+
+## 概要
+
+此提示帮助技术产品经理创建标准化、全面的工程工单,为开发人员提供理解、实施和测试新功能所需的所有信息,提高效率。
+
+## .cursorrules 提示概述
+
+.cursorrules 提示指导用户创建有效的工程工单,包含以下关键要素:
+
+- **灵活格式**:支持列表式和 Given-When-Then 验收标准
+- **完整章节**:包含所有基本工程工单组件的完整模板
+- **详细示例**:使用不同格式的两个全面示例
+- **最佳实践**:编写有效工程工单的十项关键原则
+- **适应性指导**:为不同工具和团队定制工单的建议
+- **平衡性**:在提供足够细节的同时允许技术创造力
diff --git a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/.cursorrules b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/.cursorrules
index 137d00f..d91bb25 100644
--- a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/.cursorrules
+++ b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/.cursorrules
@@ -1,36 +1,35 @@
-you are an expert Angular programmer using TypeScript, Angular 18 and Jest that focuses on producing clear, readable code.
+你是一名使用 TypeScript、Angular 18 和 Jest 的 Angular 专家程序员,专注于编写清晰、可读的代码。
-you are thoughtful, give nuanced answers, and are brilliant at reasoning.
+你深思熟虑,给出细致入微的答案,并且推理能力卓越。
-you carefully provide accurate, factual, thoughtful answers and are a genius at reasoning.
+你仔细提供准确、真实、深思熟虑的答案,并且推理能力超群。
-before providing an answer, think step by step, and provide a detailed, thoughtful answer.
+在提供答案之前,请逐步思考,并提供详细、深思熟虑的答案。
-if you need more information, ask for it.
+如果你需要更多信息,请提出。
-always write correct, up to date, bug free, fully functional and working code.
+始终编写正确、最新、无 bug、功能齐全且可运行的代码。
-focus on performance, readability, and maintainability.
+关注性能、可读性和可维护性。
-before providing an answer, double check your work
+在提供答案之前,请仔细检查你的工作。
-include all required imports, and ensure proper naming of key components
+包含所有必需的导入,并确保关键组件的正确命名。
-do not nest code more than 2 levels deep
+代码嵌套深度不超过 2 层。
-prefer using the forNext function, located in libs/smart-ngrx/src/common/for-next.function.ts instead of for(let i;i < length;i++), forEach or for(x of y)
+优先使用 `libs/smart-ngrx/src/common/for-next.function.ts` 中的 `forNext` 函数,而不是 `for(let i;i < length;i++)`、`forEach` 或 `for(x of y)`。
-code should obey the rules defined in the .eslintrc.json, .prettierrc, .htmlhintrc, and .editorconfig files
+代码应遵守 `.eslintrc.json`、`.prettierrc`、`.htmlhintrc` 和 `.editorconfig` 文件中定义的规则。
-functions and methods should not have more than 4 parameters
+函数和方法的参数不应超过 4 个。
-functions should not have more than 50 executable lines
+函数的执行行数不应超过 50 行。
-lines should not be more than 80 characters
+每行字符数不应超过 80 个。
-when refactoring existing code, keep jsdoc comments intact
+重构现有代码时,请保持 JSDoc 注释不变。
-be concise and minimize extraneous prose.
-
-if you don't know the answer to a request, say so instead of making something up.
+言简意赅,尽量减少无关的文字。
+如果你不知道请求的答案,请直接说明,而不是编造。
diff --git a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/README.md b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/README.md
index 25195ff..27f1f24 100644
--- a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/README.md
+++ b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/README.md
@@ -1,16 +1,35 @@
-# Angular TypeScript .cursorrules prompt file
+# Angular TypeScript .cursorrules 提示文件
-Author: Dave Bush
+作者:Dave Bush
-## What you can build
-Angular Code Refactoring Tool: A web application that allows developers to input existing Angular code and automatically refactor it according to modern development standards, ensuring compliance with ESLint, Prettier, HTMLHint, and Editorconfig rules.Angular Code Quality Checker: An online service that analyzes Angular code to check for compliance with coding standards, performance issues, readability, and maintainability, providing detailed reports and suggestions for improvement.Angular Best Practices Guide: A comprehensive web-based resource featuring up-to-date best practices for Angular development focusing on TypeScript, including examples and explanations designed to improve code readability, performance, and maintainability.Interactive Angular Workshop Platform: A platform offering interactive workshops and exercises for Angular developers to practice writing clean, readable code using TypeScript, with real-time feedback and code reviews by experts.Angular forNext Utilization Plugin: A plugin for popular IDEs that assists developers in converting traditional loops into the forNext function from libs/smart-ngrx/src/common/for-next.function.ts, improving consistency across projects.Angular Code Formatting Extension: An extension for VS Code that formats Angular code files by following the latest ESLint, Prettier, HTMLHint, and Editorconfig rules, ensuring a uniform code style.AI-Powered Angular Debugging Assistant: A service that integrates into IDEs to provide AI-driven debugging suggestions specifically for Angular projects, helping developers identify and resolve issues efficiently.Angular Performance Optimization Service: An online tool that analyzes Angular applications and suggests performance improvements, focusing on code efficiency, resource loading, and runtime performance enhancements.Angular Codebase Documentation Generator: A tool that automatically generates documentation for Angular projects, maintaining jsdoc comments and updating them to reflect the latest codebase changes, ensuring maintainability.Angular Component Library Analyzer: An application that evaluates custom Angular component libraries for adherence to best practices related to performance, readability, and maintainability, providing audit results and recommended changes.
+## 你可以构建什么
-## Benefits
+Angular 代码重构工具:一个允许开发人员输入现有 Angular 代码并根据现代开发标准自动重构的 Web 应用程序,确保符合 ESLint、Prettier、HTMLHint 和 Editorconfig 规则。
+Angular 代码质量检查器:一个在线服务,分析 Angular 代码以检查其是否符合编码标准、性能问题、可读性和可维护性,提供详细报告和改进建议。
-## Synopsis
-Angular developers aiming to enhance code quality and adhere to best practices can leverage this prompt to build clear, maintainable, and efficient Angular applications using the latest standards and testing with Jest.
+Angular 最佳实践指南:一个全面的基于 Web 的资源,提供最新的 Angular 开发最佳实践,重点关注 TypeScript,包括旨在提高代码可读性、性能和可维护性的示例和解释。
-## Overview of .cursorrules prompt
-The .cursorrules file specifies guidelines for an expert Angular programmer using TypeScript, Angular 18, and Jest to produce code that is clear, readable, and performant. It emphasizes thoughtful and accurate reasoning, with a focus on providing well-reasoned answers. The file highlights best practices such as writing bug-free and fully functional code, ensuring proper imports and naming, and adhering to specific coding standards from configuration files like .eslintrc.json and .prettierrc. It also sets constraints on code structure and style, including limits on parameter count, lines of code, and nesting depth. The .cursorrules file encourages refactoring while preserving documentation and maintaining conciseness.
+交互式 Angular 工作坊平台:一个为 Angular 开发人员提供交互式工作坊和练习的平台,用于练习使用 TypeScript 编写清晰、可读的代码,并由专家提供实时反馈和代码审查。
+Angular forNext 利用插件:一个用于流行 IDE 的插件,帮助开发人员将传统循环转换为 `libs/smart-ngrx/src/common/for-next.function.ts` 中的 `forNext` 函数,从而提高项目之间的一致性。
+
+Angular 代码格式化扩展:一个用于 VS Code 的扩展,通过遵循最新的 ESLint、Prettier、HTMLHint 和 Editorconfig 规则来格式化 Angular 代码文件,确保统一的代码风格。
+
+AI 驱动的 Angular 调试助手:一个集成到 IDE 中的服务,专门为 Angular 项目提供 AI 驱动的调试建议,帮助开发人员高效识别和解决问题。
+
+Angular 性能优化服务:一个在线工具,分析 Angular 应用程序并提出性能改进建议,重点关注代码效率、资源加载和运行时性能增强。
+
+Angular 代码库文档生成器:一个自动为 Angular 项目生成文档的工具,维护 jsdoc 注释并更新它们以反映最新的代码库更改,确保可维护性。
+
+Angular 组件库分析器:一个评估自定义 Angular 组件库是否符合与性能、可读性和可维护性相关的最佳实践的应用程序,提供审计结果和建议的更改。
+
+## 优势
+
+## 概要
+
+旨在提高代码质量并遵守最佳实践的 Angular 开发人员可以利用此提示来构建清晰、可维护、高效的 Angular 应用程序,使用最新的标准并通过 Jest 进行测试。
+
+## .cursorrules 提示概述
+
+`.cursorrules` 文件为使用 TypeScript、Angular 18 和 Jest 的 Angular 专家程序员指定了指导方针,以生成清晰、可读且高性能的代码。它强调深思熟虑和准确的推理,重点是提供有充分理由的答案。该文件强调了最佳实践,例如编写无 bug 且功能齐全的代码,确保正确的导入和命名,并遵守来自 `.eslintrc.json` 和 `.prettierrc` 等配置文件的特定编码标准。它还对代码结构和风格设置了约束,包括参数数量、代码行数和嵌套深度的限制。`.cursorrules` 文件鼓励在重构时保留文档并保持简洁。
diff --git a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/angular-general.mdc b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/angular-general.mdc
index 8395cab..17ecb03 100644
--- a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/angular-general.mdc
+++ b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/angular-general.mdc
@@ -1,22 +1,22 @@
---
-description: General rules for Angular components, focusing on code quality, performance, and maintainability.
+description: Angular 组件通用规则,侧重于代码质量、性能和可维护性。
globs: **/*.component.ts
---
-- You are an expert Angular programmer using TypeScript, Angular 18 and Jest that focuses on producing clear, readable code.
-- You are thoughtful, give nuanced answers, and are brilliant at reasoning.
-- You carefully provide accurate, factual, thoughtful answers and are a genius at reasoning.
-- Before providing an answer, think step by step, and provide a detailed, thoughtful answer.
-- If you need more information, ask for it.
-- Always write correct, up to date, bug free, fully functional and working code.
-- Focus on performance, readability, and maintainability.
-- Before providing an answer, double check your work.
-- Include all required imports, and ensure proper naming of key components.
-- Do not nest code more than 2 levels deep.
-- Prefer using the forNext function, located in libs/smart-ngrx/src/common/for-next.function.ts instead of for(let i;i < length;i++), forEach or for(x of y).
-- Code should obey the rules defined in the .eslintrc.json, .prettierrc, .htmlhintrc, and .editorconfig files.
-- Functions and methods should not have more than 4 parameters.
-- Functions should not have more than 50 executable lines.
-- Lines should not be more than 80 characters.
-- When refactoring existing code, keep jsdoc comments intact.
-- Be concise and minimize extraneous prose.
-- If you don't know the answer to a request, say so instead of making something up.
\ No newline at end of file
+- 你是一名使用 TypeScript、Angular 18 和 Jest 的 Angular 专家程序员,专注于编写清晰、可读的代码。
+- 你深思熟虑,给出细致入微的答案,并且推理能力卓越。
+- 你仔细提供准确、真实、深思熟虑的答案,并且推理能力超群。
+- 在提供答案之前,请逐步思考,并提供详细、深思熟虑的答案。
+- 如果你需要更多信息,请提出。
+- 始终编写正确、最新、无 bug、功能齐全且可运行的代码。
+- 关注性能、可读性和可维护性。
+- 在提供答案之前,请仔细检查你的工作。
+- 包含所有必需的导入,并确保关键组件的正确命名。
+- 代码嵌套深度不超过 2 层。
+- 优先使用 `libs/smart-ngrx/src/common/for-next.function.ts` 中的 `forNext` 函数,而不是 `for(let i;i < length;i++)`、`forEach` 或 `for(x of y)`。
+- 代码应遵守 `.eslintrc.json`、`.prettierrc`、`.htmlhintrc` 和 `.editorconfig` 文件中定义的规则。
+- 函数和方法的参数不应超过 4 个。
+- 函数的执行行数不应超过 50 行。
+- 每行字符数不应超过 80 个。
+- 重构现有代码时,请保持 JSDoc 注释不变。
+- 言简意赅,尽量减少无关的文字。
+- 如果你不知道请求的答案,请直接说明,而不是编造。
diff --git a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/angular-template-hints.mdc b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/angular-template-hints.mdc
index df1c0b3..b385203 100644
--- a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/angular-template-hints.mdc
+++ b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/angular-template-hints.mdc
@@ -1,6 +1,6 @@
---
-description: Rules specific to Angular templates that ensures code quality standards.
+description: 确保代码质量标准的 Angular 模板特定规则。
globs: **/*.component.html
---
-- Code should obey the rules defined in the .htmlhintrc, and .editorconfig files.
-- Be concise and minimize extraneous prose.
\ No newline at end of file
+- 代码应遵守 `.htmlhintrc` 和 `.editorconfig` 文件中定义的规则。
+- 言简意赅,尽量减少无关的文字。
diff --git a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/general-reasoning.mdc b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/general-reasoning.mdc
index 2d26242..01bdea5 100644
--- a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/general-reasoning.mdc
+++ b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/general-reasoning.mdc
@@ -1,8 +1,8 @@
---
-description: Rules about reasoning, accuracy, and knowledge gaps
+description: 关于推理、准确性和知识空白的规则
globs: **/*
---
-- You are thoughtful, give nuanced answers, and are brilliant at reasoning.
-- You carefully provide accurate, factual, thoughtful answers and are a genius at reasoning.
-- Before providing an answer, think step by step, and provide a detailed, thoughtful answer.
-- If you don't know the answer to a request, say so instead of making something up.
\ No newline at end of file
+- 你深思熟虑,给出细致入微的答案,并且推理能力卓越。
+- 你仔细提供准确、真实、深思熟虑的答案,并且推理能力超群。
+- 在提供答案之前,请逐步思考,并提供详细、深思熟虑的答案。
+- 如果你不知道请求的答案,请直接说明,而不是编造。
diff --git a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/refactoring-existing-code.mdc b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/refactoring-existing-code.mdc
index c6b758b..c01c280 100644
--- a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/refactoring-existing-code.mdc
+++ b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/refactoring-existing-code.mdc
@@ -1,6 +1,6 @@
---
-description: Instructions for refactoring code, focusing on readability, performance, and maintainability.
+description: 重构代码的说明,侧重于可读性、性能和可维护性。
globs: **/*
---
-- Focus on performance, readability, and maintainability when refactoring existing code.
-- When refactoring existing code, keep jsdoc comments intact.
\ No newline at end of file
+- 在重构现有代码时,请关注性能、可读性和可维护性。
+- 重构现有代码时,请保持 JSDoc 注释不变。
diff --git a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/typescript-coding-style.mdc b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/typescript-coding-style.mdc
index a9b613c..0934dc2 100644
--- a/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/typescript-coding-style.mdc
+++ b/rules/frontend/angular/angular-typescript-cursorrules-prompt-file/typescript-coding-style.mdc
@@ -1,9 +1,9 @@
---
-description: Enforces code style and best practices for TypeScript files.
+description: 强制执行 TypeScript 文件的代码风格和最佳实践。
globs: **/*.ts
---
-- Code should obey the rules defined in the .eslintrc.json, .prettierrc, and .editorconfig files.
-- Lines should not be more than 80 characters.
-- Prefer using the forNext function, located in libs/smart-ngrx/src/common/for-next.function.ts instead of for(let i;i < length;i++), forEach or for(x of y).
-- Functions and methods should not have more than 4 parameters.
-- Functions should not have more than 50 executable lines.
\ No newline at end of file
+- 代码应遵守 `.eslintrc.json`、`.prettierrc` 和 `.editorconfig` 文件中定义的规则。
+- 每行字符数不应超过 80 个。
+- 优先使用 `libs/smart-ngrx/src/common/for-next.function.ts` 中的 `forNext` 函数,而不是 `for(let i;i < length;i++)`、`forEach` 或 `for(x of y)`。
+- 函数和方法的参数不应超过 4 个。
+- 函数的执行行数不应超过 50 行。
diff --git a/rules/frontend/react/apollo-graphql/apollo-caching.mdc b/rules/frontend/react/apollo-graphql/apollo-caching.mdc
index 30c9dc6..f5482c1 100644
--- a/rules/frontend/react/apollo-graphql/apollo-caching.mdc
+++ b/rules/frontend/react/apollo-graphql/apollo-caching.mdc
@@ -1,5 +1,10 @@
---
-description: 利用 Apollo Client 的缓存功能来提高性能。
+description: "利用 Apollo Client 的缓存功能来提高性能"
globs: src/**/*.js
---
-- 利用 Apollo Client 的缓存功能
+- **利用 Apollo Client 的缓存功能**:
+ - 优先使用 Apollo Client 的规范化缓存(Normalized Cache)来存储和管理数据,减少不必要的网络请求。
+ - 理解并配置 `fetchPolicy`,以优化数据获取策略,例如 `cache-first`、`network-only`、`cache-and-network` 等。
+ - 针对频繁变动的数据,考虑使用 `no-cache` 或 `cache-and-network` 策略,并结合订阅(Subscriptions)或轮询(Polling)实现实时更新。
+ - 对于列表数据,合理使用 `offsetLimitPagination` 或 `cursorPagination` 等策略来处理分页和无限滚动,确保缓存的有效性。
+ - 在进行数据修改(如 Mutations)后,通过 `update` 函数或 `refetchQueries` 来及时更新缓存,保持UI与后端数据的一致性。
diff --git a/rules/frontend/react/apollo-graphql/apollo-custom-hooks.mdc b/rules/frontend/react/apollo-graphql/apollo-custom-hooks.mdc
index f57b601..1f869e4 100644
--- a/rules/frontend/react/apollo-graphql/apollo-custom-hooks.mdc
+++ b/rules/frontend/react/apollo-graphql/apollo-custom-hooks.mdc
@@ -1,5 +1,32 @@
---
-description: 指导为 Apollo 操作实现自定义 hooks。
+description: "指导为 Apollo 操作实现自定义 hooks"
globs: src/hooks/**/*.js
---
-- 为 Apollo 操作实现自定义 hooks
+- **为 Apollo 操作实现自定义 hooks**:
+ - **封装复杂逻辑**:将重复的 Apollo Client 操作(如查询、变更、订阅)和相关逻辑封装到自定义 hooks 中,提高代码复用性。
+ - **统一错误处理和加载状态**:在自定义 hooks 中统一处理加载(`loading`)、错误(`error`)状态和数据(`data`),简化组件层的逻辑。
+ - **类型安全**:结合 TypeScript 为自定义 hooks 定义清晰的输入(变量)和输出(数据、状态)类型,确保类型安全。
+ - **可测试性**:设计易于测试的自定义 hooks,方便进行单元测试和集成测试。
+ - **示例**:
+ ```typescript
+ // hooks/useUser.ts
+ import { useQuery, gql } from '@apollo/client';
+
+ const GET_USER_QUERY = gql`
+ query GetUser($id: ID!) {
+ user(id: $id) {
+ id
+ name
+ email
+ }
+ }
+ `;
+
+ export const useUser = (id: string) => {
+ const { data, loading, error } = useQuery(GET_USER_QUERY, {
+ variables: { id },
+ });
+
+ return { user: data?.user, loading, error };
+ };
+ ```
diff --git a/rules/frontend/react/apollo-graphql/apollo-devtools.mdc b/rules/frontend/react/apollo-graphql/apollo-devtools.mdc
index eb16e7c..55c8391 100644
--- a/rules/frontend/react/apollo-graphql/apollo-devtools.mdc
+++ b/rules/frontend/react/apollo-graphql/apollo-devtools.mdc
@@ -1,5 +1,11 @@
---
-description: 建议使用 Apollo Client DevTools 进行调试。
+description: "建议使用 Apollo Client DevTools 进行调试"
globs: src/**/*.js
---
-- 使用 Apollo Client DevTools 进行调试
+- **使用 Apollo Client DevTools 进行调试**:
+ - **安装与集成**:在开发环境中安装并集成 Apollo Client DevTools 浏览器扩展,以便于调试 Apollo Client 的操作和缓存状态。
+ - **查询与变更监控**:利用 DevTools 监控所有 GraphQL 查询(Queries)、变更(Mutations)和订阅(Subscriptions)的请求与响应,包括变量、操作名称和返回数据。
+ - **缓存检查**:检查 Apollo Client 的规范化缓存(Normalized Cache)内容,理解数据如何存储、更新和失效,有助于排查数据不一致问题。
+ - **性能分析**:分析 GraphQL 请求的性能,识别潜在的瓶颈,例如慢查询或过多的网络请求。
+ - **错误诊断**:查看 GraphQL 错误信息,快速定位后端或前端数据处理中的问题。
+ - **状态管理**:观察组件如何与 Apollo Client 交互,以及数据流如何在应用中传递。
diff --git a/rules/frontend/react/apollo-graphql/apollo-provider-setup.mdc b/rules/frontend/react/apollo-graphql/apollo-provider-setup.mdc
index 765a204..9ef1871 100644
--- a/rules/frontend/react/apollo-graphql/apollo-provider-setup.mdc
+++ b/rules/frontend/react/apollo-graphql/apollo-provider-setup.mdc
@@ -1,5 +1,29 @@
---
-description: 要求在应用程序根部使用 Apollo Provider。
+description: "要求在应用程序根部使用 Apollo Provider"
globs: src/App.jsx
---
-- 在应用程序根部使用 Apollo Provider
+- **在应用程序根部使用 Apollo Provider**:
+ - **全局可用性**:确保在 React 应用程序的根组件(例如 `App.js` 或 `index.js`)中使用 `ApolloProvider` 包裹整个应用,以便所有子组件都能访问 Apollo Client 实例。
+ - **Client 实例配置**:在 `ApolloProvider` 中传入已配置好的 `ApolloClient` 实例,该实例应包含 `uri`(GraphQL 服务器地址)和 `cache`(缓存策略,通常是 `InMemoryCache`)等必要配置。
+ - **示例**:
+ ```javascript
+ // index.js 或 App.js
+ import React from 'react';
+ import ReactDOM from 'react-dom/client';
+ import { ApolloClient, InMemoryCache, ApolloProvider, gql } from '@apollo/client';
+ import App from './App';
+
+ const client = new ApolloClient({
+ uri: 'YOUR_GRAPHQL_ENDPOINT',
+ cache: new InMemoryCache(),
+ });
+
+ ReactDOM.createRoot(document.getElementById('root')).render(
+
+
+
+
+ ,
+ );
+ ```
+ - **中间件与错误处理**:在 `ApolloClient` 配置中,可以添加 `link` 来处理认证、错误重试、文件上传等高级功能,例如使用 `HttpLink`、`AuthLink`、`ErrorLink` 等。
diff --git a/rules/frontend/react/apollo-graphql/graphql-apollo-client-usage.mdc b/rules/frontend/react/apollo-graphql/graphql-apollo-client-usage.mdc
index 8056a26..5c65386 100644
--- a/rules/frontend/react/apollo-graphql/graphql-apollo-client-usage.mdc
+++ b/rules/frontend/react/apollo-graphql/graphql-apollo-client-usage.mdc
@@ -1,9 +1,62 @@
---
-description: 应用 GraphQL 和 Apollo Client 使用的最佳实践,包括状态管理、数据获取和错误处理。
+description: "应用 GraphQL 和 Apollo Client 使用的最佳实践,包括状态管理、数据获取和错误处理"
globs: src/graphql/**/*.js
---
-- 使用 Apollo Client 进行状态管理和数据获取
-- 实现查询组件进行数据获取
-- 利用变更操作进行数据修改
-- 使用片段创建可重用的查询部分
-- 实现适当的错误处理和加载状态
+- **使用 Apollo Client 进行状态管理和数据获取**:
+ - 利用 `useQuery` Hook 进行数据查询,处理加载状态、错误和数据。
+ - 使用 `useMutation` Hook 执行数据修改操作,并在成功后更新缓存或重新获取相关数据。
+ - 结合 `useSubscription` Hook 实现实时数据更新。
+- **实现查询组件进行数据获取**:
+ - 推荐使用基于 Hook 的方式(如 `useQuery`)而非旧版 `Query` 组件,以更好地利用 React Hooks 的特性。
+ - 示例:
+ ```typescript
+ import { useQuery, gql } from '@apollo/client';
+
+ const GET_TODOS = gql`
+ query GetTodos {
+ todos {
+ id
+ text
+ completed
+ }
+ }
+ `;
+
+ function TodosList() {
+ const { loading, error, data } = useQuery(GET_TODOS);
+
+ if (loading) return Loading...
;
+ if (error) return Error :({error.message}
;
+
+ return (
+
+ {data.todos.map(({ id, text, completed }) => (
+ -
+ {text}
+
+ ))}
+
+ );
+ }
+ ```
+- **利用变更操作进行数据修改**:
+ - 使用 `useMutation` Hook 发送变更请求,并利用 `update` 函数或 `refetchQueries` 选项在变更成功后更新 Apollo 缓存,确保 UI 状态与后端数据同步。
+- **使用片段创建可重用的查询部分**:
+ - 定义 GraphQL 片段(Fragments)来封装可重用的字段集,提高查询的可维护性和复用性。
+ - 示例:
+ ```graphql
+ fragment UserFields on User {
+ id
+ name
+ email
+ }
+
+ query GetUserDetails($id: ID!) {
+ user(id: $id) {
+ ...UserFields
+ }
+ }
+ ```
+- **实现适当的错误处理和加载状态**:
+ - 在组件中处理 `loading` 和 `error` 状态,向用户提供友好的加载指示和错误反馈。
+ - 可以结合 `ErrorLink` 或自定义错误边界(Error Boundaries)来集中处理 GraphQL 错误。
diff --git a/rules/frontend/react/apollo-graphql/graphql-error-boundaries.mdc b/rules/frontend/react/apollo-graphql/graphql-error-boundaries.mdc
index fd798a1..c48ef23 100644
--- a/rules/frontend/react/apollo-graphql/graphql-error-boundaries.mdc
+++ b/rules/frontend/react/apollo-graphql/graphql-error-boundaries.mdc
@@ -1,5 +1,58 @@
---
-description: 要求为 GraphQL 错误实现适当的错误边界。
+description: "要求为 GraphQL 错误实现适当的错误边界"
globs: src/**/*.jsx
----
-- 为 GraphQL 错误实现适当的错误边界
+---
+- **为 GraphQL 错误实现适当的错误边界**:
+ - **使用 React 错误边界**:利用 React 的错误边界(Error Boundaries)来捕获组件树中由 GraphQL 操作(查询、变更、订阅)引起的 JavaScript 错误,防止整个应用崩溃。
+ - **集中错误处理**:在错误边界组件中集中处理和展示友好的错误信息,而不是让每个组件单独处理错误状态。
+ - **错误日志记录**:在错误边界中实现错误日志记录机制(例如,发送到 Sentry、Bugsnag 等错误监控服务),以便于跟踪和诊断生产环境中的问题。
+ - **用户体验**:当发生错误时,向用户显示一个回退 UI,提供重试选项或引导用户进行下一步操作,提升用户体验。
+ - **示例**:
+ ```javascript
+ // ErrorBoundary.js
+ import React from 'react';
+
+ class ErrorBoundary extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = { hasError: false, error: null, errorInfo: null };
+ }
+
+ static getDerivedStateFromError(error) {
+ // 更新 state 使下一次渲染能够显示降级后的 UI
+ return { hasError: true };
+ }
+
+ componentDidCatch(error, errorInfo) {
+ // 你同样可以将错误日志上报给服务器
+ console.error("Uncaught error:", error, errorInfo);
+ this.setState({ error, errorInfo });
+ }
+
+ render() {
+ if (this.state.hasError) {
+ // 你可以自定义降级后的 UI 并渲染
+ return (
+
+
Something went wrong.
+
+ {this.state.error && this.state.error.toString()}
+
+ {this.state.errorInfo.componentStack}
+
+
+ );
+ }
+
+ return this.props.children;
+ }
+ }
+
+ export default ErrorBoundary;
+
+ // 在应用中使用
+ //
+ //
+ //
+ ```
+ - **与 Apollo Link 结合**:对于 GraphQL 网络层面的错误(如 HTTP 错误、GraphQL 格式错误),可以结合 Apollo Client 的 `ErrorLink` 进行处理,并在 `ErrorLink` 中抛出错误,使其能被 React 错误边界捕获。
diff --git a/rules/frontend/react/apollo-graphql/graphql-naming-conventions.mdc b/rules/frontend/react/apollo-graphql/graphql-naming-conventions.mdc
index 9a40cc4..15077f8 100644
--- a/rules/frontend/react/apollo-graphql/graphql-naming-conventions.mdc
+++ b/rules/frontend/react/apollo-graphql/graphql-naming-conventions.mdc
@@ -1,5 +1,30 @@
---
-description: 要求遵循查询、变更和片段的命名约定。
+description: "要求遵循查询、变更和片段的命名约定"
globs: src/graphql/**/*.js
---
-- 遵循查询、变更和片段的命名约定
+- **遵循查询、变更和片段的命名约定**:
+ - **查询(Queries)**:
+ - 使用 `get` 或 `fetch` 前缀,后跟实体名称和可选的复数形式。
+ - 示例:`getUsers`、`getUserById`、`fetchProductDetails`。
+ - **变更(Mutations)**:
+ - 使用动词前缀表示操作类型,后跟实体名称。
+ - 示例:`createUser`、`updateProduct`、`deleteComment`。
+ - **订阅(Subscriptions)**:
+ - 使用 `on` 前缀,后跟事件名称。
+ - 示例:`onNewMessage`、`onUserUpdated`。
+ - **片段(Fragments)**:
+ - 使用实体名称,后跟 `Fields` 或 `Details` 后缀。
+ - 示例:`UserFields`、`ProductDetails`。
+ - **类型(Types)和字段(Fields)**:
+ - 类型名称使用 PascalCase(大驼峰命名法)。
+ - 字段名称使用 camelCase(小驼峰命名法)。
+ - 示例:`User` 类型中的 `firstName` 字段。
+ - **枚举(Enums)**:
+ - 枚举类型名称使用 PascalCase,枚举值使用 ALL_CAPS(全大写)。
+ - 示例:`OrderStatus` 枚举中的 `PENDING`、`COMPLETED`。
+ - **变量(Variables)**:
+ - 变量名称使用 camelCase。
+ - 示例:`$userId`、`$input`。
+ - **通用原则**:
+ - 保持命名清晰、简洁、一致,能够直观地表达其用途和所操作的数据。
+ - 避免缩写,除非是广为人知的缩写(如 `ID`)。
diff --git a/rules/frontend/react/apollo-graphql/graphql-typescript-integration.mdc b/rules/frontend/react/apollo-graphql/graphql-typescript-integration.mdc
index 9380950..c0c31c6 100644
--- a/rules/frontend/react/apollo-graphql/graphql-typescript-integration.mdc
+++ b/rules/frontend/react/apollo-graphql/graphql-typescript-integration.mdc
@@ -1,5 +1,79 @@
---
-description: 强制使用 TypeScript 确保 GraphQL 操作的类型安全。
+description: "强制使用 TypeScript 确保 GraphQL 操作的类型安全"
globs: src/graphql/**/*.ts
---
-- 对 GraphQL 操作使用 TypeScript 确保类型安全
+- **对 GraphQL 操作使用 TypeScript 确保类型安全**:
+ - **代码生成**:利用 GraphQL Code Generator 或类似工具,根据 GraphQL schema 和操作(Queries, Mutations, Subscriptions)自动生成 TypeScript 类型定义。
+ - **类型推断**:确保 `useQuery`、`useMutation` 和 `useSubscription` Hooks 的返回值(`data`, `loading`, `error`)和变量(`variables`)都具有正确的类型推断。
+ - **端到端类型安全**:从 GraphQL API 到前端组件,实现端到端的类型安全,减少运行时错误。
+ - **示例**:
+ ```typescript
+ // graphql.schema.json (部分)
+ {
+ "data": {
+ "__schema": {
+ "types": [
+ {
+ "kind": "OBJECT",
+ "name": "User",
+ "fields": [
+ { "name": "id", "type": { "kind": "NON_NULL", "ofType": { "kind": "SCALAR", "name": "ID" } } },
+ { "name": "name", "type": { "kind": "SCALAR", "name": "String" } }
+ ]
+ }
+ ]
+ }
+ }
+ }
+
+ // query.graphql
+ query GetUser($id: ID!) {
+ user(id: $id) {
+ id
+ name
+ }
+ }
+
+ // generated.ts (通过工具生成)
+ export type GetUserQueryVariables = {
+ id: string;
+ };
+
+ export type GetUserQuery = {
+ user?: {
+ __typename?: "User";
+ id: string;
+ name?: string | null;
+ } | null;
+ };
+
+ // component.tsx
+ import { useQuery } from '@apollo/client';
+ import { GetUserQuery, GetUserQueryVariables } from './generated'; // 假设类型已生成
+
+ const GET_USER_QUERY = gql`
+ query GetUser($id: ID!) {
+ user(id: $id) {
+ id
+ name
+ }
+ }
+ `;
+
+ function UserProfile({ userId }: { userId: string }) {
+ const { data, loading, error } = useQuery(GET_USER_QUERY, {
+ variables: { id: userId },
+ });
+
+ if (loading) return Loading...
;
+ if (error) return Error: {error.message}
;
+
+ return (
+
+
{data?.user?.name}
+
ID: {data?.user?.id}
+
+ );
+ }
+ ```
+ - **手动类型定义(不推荐)**:在无法使用代码生成工具的情况下,可以手动定义 GraphQL 响应的 TypeScript 接口,但这容易出错且难以维护。
diff --git a/rules/frontend/react/apollo-graphql/react-functional-components-preference.mdc b/rules/frontend/react/apollo-graphql/react-functional-components-preference.mdc
index ddb19df..66414c3 100644
--- a/rules/frontend/react/apollo-graphql/react-functional-components-preference.mdc
+++ b/rules/frontend/react/apollo-graphql/react-functional-components-preference.mdc
@@ -1,5 +1,33 @@
---
-description: 在 React 组件中强制使用带有 hooks 的函数式组件。
+description: "在 React 组件中强制使用带有 hooks 的函数式组件"
globs: src/components/**/*.jsx
---
-- 始终使用带有 hooks 的函数式组件而不是类组件。
+- **始终使用带有 hooks 的函数式组件而不是类组件**:
+ - **现代化开发**:优先使用 React Hooks(如 `useState`, `useEffect`, `useContext`, `useReducer`, `useCallback`, `useMemo` 等)进行状态管理和副作用处理,以符合 React 官方推荐的现代化开发范式。
+ - **代码简洁性**:函数式组件通常比类组件更简洁,更易于阅读和理解,尤其是在处理逻辑复用时。
+ - **逻辑复用**:通过自定义 Hooks,可以方便地在不同组件之间共享状态逻辑,避免了高阶组件(HOCs)和渲染属性(Render Props)带来的嵌套问题。
+ - **性能优化**:结合 `useCallback` 和 `useMemo` 等 Hooks,可以有效地进行性能优化,避免不必要的渲染。
+ - **可测试性**:函数式组件和 Hooks 更容易进行单元测试。
+ - **示例**:
+ ```javascript
+ // 函数式组件示例
+ import React, { useState, useEffect } from 'react';
+
+ function Counter() {
+ const [count, setCount] = useState(0);
+
+ useEffect(() => {
+ document.title = `You clicked ${count} times`;
+ }, [count]);
+
+ return (
+
+
You clicked {count} times
+
+
+ );
+ }
+ ```
+ - **特殊情况**:仅在极少数需要使用 `getSnapshotBeforeUpdate` 或 `componentDidCatch` 等生命周期方法时,才考虑使用类组件,但大多数场景下 Hooks 都能提供替代方案(如错误边界)。
diff --git a/rules/frontend/react/chakra-ui/chakra-ui---accessibility-features.mdc b/rules/frontend/react/chakra-ui/chakra-ui---accessibility-features.mdc
index 4ddc037..75a6f8f 100644
--- a/rules/frontend/react/chakra-ui/chakra-ui---accessibility-features.mdc
+++ b/rules/frontend/react/chakra-ui/chakra-ui---accessibility-features.mdc
@@ -1,5 +1,27 @@
---
-description: 使用 Chakra UI 构建的 React 组件的可访问性功能。
+description: "使用 Chakra UI 构建的 React 组件的可访问性功能"
globs: src/**/*.*
---
-- 利用 Chakra UI 的内置可访问性功能
+- **利用 Chakra UI 的内置可访问性功能**:
+ - **语义化 HTML**:优先使用 Chakra UI 提供的组件,它们通常会渲染出语义化的 HTML 元素,有助于提高可访问性。
+ - **WAI-ARIA 支持**:Chakra UI 组件内置了 WAI-ARIA 属性,如 `aria-label`、`aria-labelledby`、`aria-describedby` 等,确保辅助技术能够正确解释组件。
+ - **键盘导航**:所有交互式组件都应支持键盘导航,确保用户可以通过键盘(Tab、Enter、Space 等)进行操作。
+ - **焦点管理**:在模态框、抽屉、菜单等组件中,确保焦点管理正确,例如打开时将焦点移到内容区域,关闭时将焦点返回到触发元素。
+ - **颜色对比度**:在设计自定义主题或使用颜色时,确保文本和背景之间有足够高的颜色对比度,以满足 WCAG 2.1 AA 级标准。
+ - **可访问性属性定制**:在必要时,可以通过 `aria-` 和 `data-` 属性来自定义组件的可访问性行为。
+ - **示例**:
+ ```jsx
+ import { Button } from '@chakra-ui/react';
+
+ function MyAccessibleButton() {
+ return (
+
+ );
+ }
+ ```
+ - **测试**:在开发过程中,使用可访问性测试工具(如 Lighthouse、axe-core)和屏幕阅读器(如 NVDA、JAWS)进行测试,确保应用的可访问性。
diff --git a/rules/frontend/react/chakra-ui/chakra-ui---component-composition.mdc b/rules/frontend/react/chakra-ui/chakra-ui---component-composition.mdc
index 9f4dfc0..610e277 100644
--- a/rules/frontend/react/chakra-ui/chakra-ui---component-composition.mdc
+++ b/rules/frontend/react/chakra-ui/chakra-ui---component-composition.mdc
@@ -1,5 +1,49 @@
---
-description: 确保使用 Chakra UI 组件以可组合的方式构建 React 组件。
+description: "确保使用 Chakra UI 组件以可组合的方式构建 React 组件"
globs: src/components/**/*.*
---
-- 使用 Chakra UI 实现适当的组件组合
+- **使用 Chakra UI 实现适当的组件组合**:
+ - **利用 `as` prop**:Chakra UI 组件支持 `as` prop,允许将组件渲染为不同的 HTML 元素或 React 组件,这在构建灵活的 UI 时非常有用。
+ - **扩展现有组件**:通过直接传递 Chakra UI 组件的 props 来扩展其样式和行为,而不是重新创建组件。
+ - **自定义组件的封装**:将复杂的 UI 逻辑和样式封装在自定义组件中,并使用 `Box`、`Flex`、`Stack` 等布局组件进行组合,保持组件的单一职责和可复用性。
+ - **使用 `forwardRef`**:当自定义组件需要转发 ref 时,使用 `forwardRef` 确保其与 Chakra UI 组件的兼容性。
+ - **示例**:
+ ```jsx
+ import { Box, Flex, Text, Button } from '@chakra-ui/react';
+
+ function Card({ title, description, buttonText, ...rest }) {
+ return (
+
+
+
+ {title}
+
+
+ {description}
+
+
+ );
+ }
+
+ // 使用示例
+ function MyPage() {
+ return (
+
+
+
+
+ );
+ }
+ ```
+ - **避免过度封装**:在某些情况下,直接使用 Chakra UI 的原子组件可能比创建新的自定义组件更有效,避免不必要的抽象。
diff --git a/rules/frontend/react/chakra-ui/chakra-ui---dark-mode-implementation.mdc b/rules/frontend/react/chakra-ui/chakra-ui---dark-mode-implementation.mdc
index efc4632..6cafb8a 100644
--- a/rules/frontend/react/chakra-ui/chakra-ui---dark-mode-implementation.mdc
+++ b/rules/frontend/react/chakra-ui/chakra-ui---dark-mode-implementation.mdc
@@ -1,5 +1,26 @@
---
-description: 在构建 React 组件时使用 Chakra UI 的颜色模式实现暗模式。
+description: "在构建 React 组件时使用 Chakra UI 的颜色模式实现暗模式"
globs: src/**/*.*
---
-- 使用 Chakra UI 的颜色模式实现暗模式
+- **使用 Chakra UI 的颜色模式实现暗模式**:
+ - **自动颜色模式**:利用 Chakra UI 内置的颜色模式(Color Mode)功能,轻松实现亮/暗模式切换,并支持系统偏好设置。
+ - **`useColorMode` Hook**:在组件中使用 `useColorMode` Hook 来获取当前颜色模式和切换模式的函数。
+ - **`ColorModeScript`**:在应用的根部(例如 `_document.js` 或 `index.js`)引入 `ColorModeScript`,以防止页面加载时的闪烁问题。
+ - **主题配置**:在 Chakra UI 主题中定义 `colors` 对象,为亮/暗模式提供不同的颜色值,确保组件在不同模式下显示正确。
+ - **示例**:
+ ```jsx
+ import { useColorMode, Button, Box } from '@chakra-ui/react';
+
+ function ColorModeSwitcher() {
+ const { colorMode, toggleColorMode } = useColorMode();
+ return (
+
+
+
+ );
+ }
+ ```
+ - **持久化**:Chakra UI 默认会将颜色模式偏好存储在 localStorage 中,确保用户下次访问时保持一致。
+ - **可访问性**:确保亮/暗模式切换时,颜色对比度仍然满足可访问性标准。
diff --git a/rules/frontend/react/chakra-ui/chakra-ui---performance-optimization.mdc b/rules/frontend/react/chakra-ui/chakra-ui---performance-optimization.mdc
index 82266cd..3e998dd 100644
--- a/rules/frontend/react/chakra-ui/chakra-ui---performance-optimization.mdc
+++ b/rules/frontend/react/chakra-ui/chakra-ui---performance-optimization.mdc
@@ -1,5 +1,16 @@
---
-description: 遵循 Chakra UI 最佳实践来优化 React 组件的性能。
+description: "遵循 Chakra UI 最佳实践来优化 React 组件的性能"
globs: src/**/*.*
---
-- 遵循 Chakra UI 性能优化的最佳实践
+- **遵循 Chakra UI 性能优化的最佳实践**:
+ - **按需导入组件**:只导入和使用实际需要的 Chakra UI 组件,避免全量导入,减少打包体积。
+ - **避免不必要的重新渲染**:
+ - 使用 `React.memo` 包装纯函数组件,当 props 没有改变时避免重新渲染。
+ - 使用 `useCallback` 和 `useMemo` 优化函数和计算结果,防止它们在每次渲染时重新创建。
+ - **CSS 变量**:Chakra UI 内部大量使用 CSS 变量,这有助于减少运行时计算,提高样式更新效率。
+ - **主题定制**:在主题配置中,只覆盖需要修改的部分,避免不必要的深度合并。
+ - **列表虚拟化**:对于长列表,考虑使用 `react-window` 或 `react-virtualized` 等库进行虚拟化,只渲染视口内的项目,提高性能。
+ - **懒加载**:对于不立即需要的组件或模块,使用 `React.lazy` 和 `Suspense` 进行代码分割和懒加载。
+ - **避免在渲染函数中创建对象/函数**:避免在组件的渲染函数内部创建新的对象或函数,这会导致每次渲染都创建新的引用,可能导致子组件不必要的重新渲染。
+ - **使用 `shouldForwardProp`**:如果自定义组件接收到非标准 HTML 属性,可以使用 `shouldForwardProp` 来防止这些属性被渲染到 DOM 中,避免不必要的 DOM 属性。
+ - **服务器端渲染(SSR)/静态站点生成(SSG)**:对于 Next.js 或 Gatsby 等框架,利用 SSR/SSG 预渲染页面,减少客户端加载时间,提高首次内容绘制(FCP)性能。
diff --git a/rules/frontend/react/chakra-ui/chakra-ui---responsive-design.mdc b/rules/frontend/react/chakra-ui/chakra-ui---responsive-design.mdc
index c9a32f6..20b27f2 100644
--- a/rules/frontend/react/chakra-ui/chakra-ui---responsive-design.mdc
+++ b/rules/frontend/react/chakra-ui/chakra-ui---responsive-design.mdc
@@ -1,5 +1,32 @@
---
-description: 利用 Chakra UI 的布局组件在 React 应用程序中创建响应式设计。
+description: "利用 Chakra UI 的布局组件在 React 应用程序中创建响应式设计"
globs: src/**/*.*
---
-- 使用 Chakra UI 的布局组件进行响应式设计
+- **使用 Chakra UI 的布局组件进行响应式设计**:
+ - **响应式样式**:利用 Chakra UI 的响应式样式语法,通过数组或对象语法为不同断点(breakpoints)应用不同的样式。
+ - **断点定制**:在主题配置中定制或扩展默认断点,以适应项目特定的设计需求。
+ - **布局组件**:使用 `Box`、`Flex`、`Grid`、`Stack` 等布局组件构建灵活的响应式布局。
+ - **`useBreakpointValue` Hook**:使用 `useBreakpointValue` Hook 根据当前断点动态地选择值。
+ - **示例**:
+ ```jsx
+ import { Box, Flex, Text, useBreakpointValue } from '@chakra-ui/react';
+
+ function ResponsiveLayout() {
+ const columns = useBreakpointValue({ base: 1, md: 2, lg: 3 });
+
+ return (
+
+
+ This text changes size based on screen width.
+
+
+ Column 1
+ Column 2
+ {columns > 2 && Column 3}
+
+
+ );
+ }
+ ```
+ - **隐藏/显示组件**:使用 `display` 属性的响应式值(如 `display={{ base: 'none', md: 'block' }}`)来控制组件在不同断点下的显示与隐藏。
+ - **可访问性**:确保响应式设计在不同屏幕尺寸和设备上都能保持良好的可访问性。
diff --git a/rules/frontend/react/chakra-ui/chakra-ui---semantic-html-rendering.mdc b/rules/frontend/react/chakra-ui/chakra-ui---semantic-html-rendering.mdc
index 53e9db9..03499bd 100644
--- a/rules/frontend/react/chakra-ui/chakra-ui---semantic-html-rendering.mdc
+++ b/rules/frontend/react/chakra-ui/chakra-ui---semantic-html-rendering.mdc
@@ -1,5 +1,24 @@
---
-description: 在使用 Chakra UI 组件时使用 'as' prop 进行语义化 HTML 渲染。
+description: "在使用 Chakra UI 组件时使用 'as' prop 进行语义化 HTML 渲染"
globs: src/components/**/*.*
---
-- 使用 'as' prop 进行语义化 HTML 渲染
+- **使用 `as` prop 进行语义化 HTML 渲染**:
+ - **增强可访问性**:优先使用 Chakra UI 组件的 `as` prop 来渲染正确的语义化 HTML 元素,而不是使用通用的 `Box` 或 `Flex` 组件来替代。
+ - **搜索引擎优化(SEO)**:语义化 HTML 有助于搜索引擎更好地理解页面结构和内容,从而提高 SEO 排名。
+ - **代码可读性**:使用具有明确语义的 HTML 标签可以提高代码的可读性和可维护性。
+ - **示例**:
+ ```jsx
+ import { Text, Box, Button } from '@chakra-ui/react';
+
+ function SemanticExample() {
+ return (
+
+ Section Title
+ This is a paragraph of text within the section.
+
+
+ );
+ }
+ ```
+ - **避免滥用 `as` prop**:仅在需要改变组件渲染的底层 HTML 元素时使用 `as` prop,而不是为了样式目的而滥用。
+ - **保持一致性**:在整个项目中保持语义化 HTML 渲染的一致性,确保所有开发人员都遵循相同的最佳实践。
diff --git a/rules/frontend/react/chakra-ui/chakra-ui---theme-directory-rules.mdc b/rules/frontend/react/chakra-ui/chakra-ui---theme-directory-rules.mdc
index 1c14c1a..c68d773 100644
--- a/rules/frontend/react/chakra-ui/chakra-ui---theme-directory-rules.mdc
+++ b/rules/frontend/react/chakra-ui/chakra-ui---theme-directory-rules.mdc
@@ -1,7 +1,54 @@
---
-description: 主题目录的特定规则,用于管理和自定义 Chakra UI 主题。
+description: "主题目录的特定规则,用于管理和自定义 Chakra UI 主题"
globs: src/theme/**/*.*
---
-- 创建 theme/index.js 来导出主题
-- 将主题基础放在 theme/foundations/ 中
-- 将组件特定的主题覆盖放在 theme/components/ 中
+- **主题目录的特定规则,用于管理和自定义 Chakra UI 主题**:
+ - **创建 `theme/index.js` 来导出主题**:
+ - 所有的主题配置都应集中在 `theme/index.js` 文件中,并从这里导出最终的主题对象。
+ - 示例:
+ ```javascript
+ // theme/index.js
+ import { extendTheme } from '@chakra-ui/react';
+ import { colors } from './foundations/colors';
+ import { Button } from './components/Button';
+
+ const theme = extendTheme({
+ colors,
+ components: {
+ Button,
+ },
+ });
+
+ export default theme;
+ ```
+ - **将主题基础放在 `theme/foundations/` 中**:
+ - 基础主题设置,如颜色(`colors.js`)、字体(`fonts.js`)、间距(`space.js`)等,应组织在 `theme/foundations/` 目录下。
+ - 示例:
+ ```javascript
+ // theme/foundations/colors.js
+ export const colors = {
+ brand: {
+ 900: '#1a365d',
+ 800: '#153e75',
+ 700: '#2a69ac',
+ },
+ };
+ ```
+ - **将组件特定的主题覆盖放在 `theme/components/` 中**:
+ - 对特定 Chakra UI 组件的样式覆盖和变体定义,应组织在 `theme/components/` 目录下,每个组件一个文件。
+ - 示例:
+ ```javascript
+ // theme/components/Button.js
+ export const Button = {
+ baseStyle: {
+ fontWeight: 'bold',
+ },
+ variants: {
+ solid: (props) => ({
+ bg: props.colorMode === 'dark' ? 'brand.700' : 'brand.500',
+ color: 'white',
+ }),
+ },
+ };
+ ```
+ - **模块化和可维护性**:这种结构有助于保持主题配置的模块化、可读性和可维护性,特别是在大型项目中。
diff --git a/rules/frontend/react/chakra-ui/chakra-ui-best-practices.mdc b/rules/frontend/react/chakra-ui/chakra-ui-best-practices.mdc
index 528aa63..a85e3d0 100644
--- a/rules/frontend/react/chakra-ui/chakra-ui-best-practices.mdc
+++ b/rules/frontend/react/chakra-ui/chakra-ui-best-practices.mdc
@@ -1,9 +1,42 @@
---
-description: 强制执行 Chakra UI 最佳实践以保持一致性并利用框架的功能。
+description: "强制执行 Chakra UI 最佳实践以保持一致性并利用框架的功能"
globs: src/**/*.*
---
-- 在应用程序根部使用 ChakraProvider
-- 利用 Chakra UI 组件实现一致的设计
-- 实现自定义主题以进行品牌特定的样式设计
-- 使用 Chakra UI 断点系统的响应式样式
-- 利用 Chakra UI hooks 增强功能
+- **在应用程序根部使用 `ChakraProvider`**:
+ - 确保在 React 应用程序的根组件中包裹 `ChakraProvider`,以便所有 Chakra UI 组件都能访问主题和上下文。
+ - 示例:
+ ```jsx
+ import { ChakraProvider } from '@chakra-ui/react';
+ import customTheme from './theme'; // 假设你的主题文件在 './theme/index.js'
+
+ function App() {
+ return (
+
+ {/* 你的应用程序内容 */}
+
+ );
+ }
+ ```
+- **利用 Chakra UI 组件实现一致的设计**:
+ - 优先使用 Chakra UI 提供的组件来构建 UI,而不是编写自定义 CSS,以确保设计的一致性和可维护性。
+ - 充分利用其内置的样式 props 和组合能力。
+- **实现自定义主题以进行品牌特定的样式设计**:
+ - 通过 `extendTheme` 函数定制颜色、字体、间距、组件样式等,以匹配品牌指南。
+ - 将主题配置分解为模块化文件(如 `foundations` 和 `components` 目录),提高可组织性。
+- **使用 Chakra UI 断点系统的响应式样式**:
+ - 利用 Chakra UI 的响应式样式语法(数组或对象语法)来轻松实现跨设备的响应式布局和样式。
+ - 示例:`fontSize={{ base: 'md', md: 'lg', lg: 'xl' }}`。
+- **利用 Chakra UI hooks 增强功能**:
+ - 使用 `useDisclosure` 管理模态框、抽屉等的打开/关闭状态。
+ - 使用 `useToast` 显示通知。
+ - 使用 `useBreakpointValue` 根据断点获取值。
+ - 使用 `useColorMode` 管理亮/暗模式。
+- **可访问性**:
+ - 始终关注可访问性,利用 Chakra UI 内置的 WAI-ARIA 支持和语义化 HTML 渲染。
+ - 确保键盘导航、焦点管理和颜色对比度符合标准。
+- **性能优化**:
+ - 按需导入组件,避免不必要的重新渲染(使用 `React.memo`、`useCallback`、`useMemo`)。
+ - 对于长列表,考虑使用虚拟化。
+- **组件组合**:
+ - 善用 `as` prop 来改变组件渲染的底层 HTML 元素,实现语义化。
+ - 将复杂逻辑封装在自定义组件中,并使用 Chakra UI 的布局组件进行组合。
diff --git a/rules/frontend/react/chakra-ui/react-chakra-ui---folder-structure.mdc b/rules/frontend/react/chakra-ui/react-chakra-ui---folder-structure.mdc
index 67124ee..ae29d0f 100644
--- a/rules/frontend/react/chakra-ui/react-chakra-ui---folder-structure.mdc
+++ b/rules/frontend/react/chakra-ui/react-chakra-ui---folder-structure.mdc
@@ -1,15 +1,25 @@
---
-description: 维护 React 和 Chakra UI 项目的定义文件夹结构以确保代码组织有序。
+description: "维护 React 和 Chakra UI 项目的定义文件夹结构以确保代码组织有序"
globs: src/**/*.*
---
-- 遵循以下文件夹结构:
-
-src/
- components/
- pages/
- theme/
- index.js
- foundations/
- components/
- hooks/
- utils/
+- **遵循以下文件夹结构**:
+ - **`src/`**:项目源代码根目录。
+ - **`components/`**:存放可复用的 UI 组件。
+ - **`common/`**:通用组件,如按钮、输入框等。
+ - **`layout/`**:布局相关组件,如 Header, Footer, Sidebar 等。
+ - **`specific/`**:特定业务或页面使用的组件。
+ - **`pages/`**:存放页面组件,每个文件代表一个路由页面。
+ - **`theme/`**:存放 Chakra UI 主题相关的配置。
+ - **`index.js`**:主题的入口文件,用于组合所有主题配置。
+ - **`foundations/`**:基础样式,如颜色、字体、间距、断点等。
+ - **`components/`**:组件样式覆盖和变体。
+ - **`hooks/`**:存放自定义 React Hooks。
+ - **`utils/`**:存放工具函数、常量、辅助函数等。
+ - **`assets/`**:存放静态资源,如图片、字体、SVG 等。
+ - **`App.js`**:应用程序的根组件。
+ - **`index.js`**:应用程序的入口文件,通常用于渲染 `App` 组件并包裹 `ChakraProvider`。
+ - **优点**:
+ - **清晰的职责分离**:每个目录都有明确的用途,便于团队协作和新成员快速上手。
+ - **可维护性**:逻辑和 UI 分离,便于修改和扩展。
+ - **可扩展性**:随着项目增长,可以轻松添加新的模块和功能。
+ - **一致性**:统一的结构有助于保持整个代码库的一致性。
diff --git a/rules/frontend/react/chakra-ui/react-chakra-ui---general-preferences.mdc b/rules/frontend/react/chakra-ui/react-chakra-ui---general-preferences.mdc
index db6e0d0..57944b5 100644
--- a/rules/frontend/react/chakra-ui/react-chakra-ui---general-preferences.mdc
+++ b/rules/frontend/react/chakra-ui/react-chakra-ui---general-preferences.mdc
@@ -1,5 +1,40 @@
---
-description: 使用 Chakra UI 的 React 组件的一般偏好,包括使用带有 hooks 的函数式组件。
+description: "使用 Chakra UI 的 React 组件的一般偏好,包括使用带有 hooks 的函数式组件"
globs: src/**/*.*
---
-- 优先使用带有 hooks 的函数式组件
+- **优先使用带有 hooks 的函数式组件**:
+ - **现代化开发**:在 Chakra UI 项目中,优先使用 React 函数式组件和 Hooks 进行开发,而不是类组件。
+ - **代码简洁性**:Hooks 使得组件逻辑更易于组织和测试,减少了冗余代码。
+ - **逻辑复用**:自定义 Hooks 可以轻松地在不同组件之间共享状态逻辑。
+ - **性能优化**:结合 `React.memo`、`useCallback` 和 `useMemo` 可以更好地控制组件的渲染行为,优化性能。
+ - **示例**:
+ ```jsx
+ import { Box, Button, useToast } from '@chakra-ui/react';
+ import React, { useState, useCallback } from 'react';
+
+ function MyFunctionalComponent() {
+ const [count, setCount] = useState(0);
+ const toast = useToast();
+
+ const handleClick = useCallback(() => {
+ setCount(prevCount => prevCount + 1);
+ toast({
+ title: 'Count updated.',
+ description: `Count is now ${count + 1}`,
+ status: 'success',
+ duration: 1000,
+ isClosable: true,
+ });
+ }, [count, toast]);
+
+ return (
+
+ Count: {count}
+
+
+ );
+ }
+ ```
+ - **与 Chakra UI 的兼容性**:Chakra UI 的 Hooks(如 `useColorMode`, `useDisclosure`)与函数式组件无缝集成,提供了强大的功能扩展。
diff --git a/rules/frontend/react/chakra-ui/react-chakra-ui---typescript-usage.mdc b/rules/frontend/react/chakra-ui/react-chakra-ui---typescript-usage.mdc
index 9207ea9..2bb6bc4 100644
--- a/rules/frontend/react/chakra-ui/react-chakra-ui---typescript-usage.mdc
+++ b/rules/frontend/react/chakra-ui/react-chakra-ui---typescript-usage.mdc
@@ -1,5 +1,31 @@
---
-description: 在使用 Chakra UI 的 React 组件时利用 TypeScript 确保类型安全。
+description: "在使用 Chakra UI 的 React 组件时利用 TypeScript 确保类型安全"
globs: src/**/*.tsx
---
-- 对 Chakra UI 组件使用 TypeScript 确保类型安全
+- **对 Chakra UI 组件使用 TypeScript 确保类型安全**:
+ - **类型推断**:Chakra UI 组件通常具有良好的 TypeScript 类型定义,可以自动推断 props 的类型,减少手动定义的工作量。
+ - **自定义组件的类型定义**:
+ - 当创建自定义组件并包裹 Chakra UI 组件时,应正确定义组件的 props 接口,并利用 Chakra UI 提供的类型工具(如 `ThemingProps`、`SystemProps`)来确保类型安全和智能提示。
+ - 示例:
+ ```typescript
+ import { Box, BoxProps } from '@chakra-ui/react';
+ import React from 'react';
+
+ interface CustomCardProps extends BoxProps {
+ title: string;
+ description: string;
+ }
+
+ const CustomCard: React.FC = ({ title, description, children, ...rest }) => {
+ return (
+
+ {title}
+ {description}
+ {children}
+
+ );
+ };
+ ```
+ - **主题类型**:如果对 Chakra UI 主题进行了扩展,确保为自定义主题添加类型定义,以便在整个应用中获得类型安全。
+ - **避免 `any` 类型**:尽量避免使用 `any` 类型,尤其是在处理 Chakra UI 组件的 props 或样式时,以充分利用 TypeScript 的优势。
+ - **工具支持**:利用 VS Code 等 IDE 的 TypeScript 支持,获得代码补全、错误检查和重构等功能,提高开发效率。
diff --git a/rules/frontend/react/mobx/folder-structure.mdc b/rules/frontend/react/mobx/folder-structure.mdc
index de4b137..be65ce2 100644
--- a/rules/frontend/react/mobx/folder-structure.mdc
+++ b/rules/frontend/react/mobx/folder-structure.mdc
@@ -1,11 +1,25 @@
---
-description: 为 React 和 MobX 项目强制执行特定的目录结构。
+description: "为 React 和 MobX 项目强制执行特定的目录结构"
globs: src/**
---
-- 维护以下文件夹结构:
- src/
- components/
- stores/
- hooks/
- pages/
- utils/
+- **维护以下文件夹结构**:
+ - **`src/`**:项目源代码根目录。
+ - **`components/`**:存放可复用的 React UI 组件。
+ - **`common/`**:通用组件。
+ - **`layout/`**:布局相关组件。
+ - **`specific/`**:特定业务组件。
+ - **`stores/`**:存放 MobX 状态管理相关的 store 文件。
+ - **`rootStore.js`**:根 store,聚合所有子 store。
+ - **`userStore.js`**:用户相关的 store。
+ - **`itemStore.js`**:业务数据相关的 store。
+ - **`hooks/`**:存放自定义 React Hooks,用于封装可复用的逻辑。
+ - **`pages/`**:存放页面组件,每个文件代表一个路由页面。
+ - **`utils/`**:存放工具函数、常量、辅助函数等。
+ - **`assets/`**:存放静态资源,如图片、字体、SVG 等。
+ - **`App.js`**:应用程序的根组件。
+ - **`index.js`**:应用程序的入口文件,通常用于渲染 `App` 组件并设置 MobX Provider。
+ - **优点**:
+ - **清晰的职责分离**:每个目录都有明确的用途,便于团队协作和新成员快速上手。
+ - **可维护性**:逻辑和 UI 分离,便于修改和扩展。
+ - **可扩展性**:随着项目增长,可以轻松添加新的模块和功能。
+ - **一致性**:统一的结构有助于保持整个代码库的一致性。
diff --git a/rules/frontend/react/mobx/mobx-best-practices.mdc b/rules/frontend/react/mobx/mobx-best-practices.mdc
index 0d96dbf..1739303 100644
--- a/rules/frontend/react/mobx/mobx-best-practices.mdc
+++ b/rules/frontend/react/mobx/mobx-best-practices.mdc
@@ -1,5 +1,15 @@
---
-description: 遵循 MobX 最佳实践以实现可扩展的状态管理。
+description: "遵循 MobX 最佳实践以实现可扩展的状态管理"
globs: src/**/*.ts
---
-- 遵循 MobX 可扩展状态管理的最佳实践。
+- **遵循 MobX 可扩展状态管理的最佳实践**:
+ - **明确可观察状态**:使用 `@observable` 或 `makeObservable` 明确定义哪些属性是可观察的,避免不必要的响应。
+ - **使用计算值(`@computed`)**:对于从可观察状态派生出的值,使用 `@computed`。它们只在依赖项改变时重新计算,提高性能。
+ - **使用动作(`@action`)修改状态**:所有状态修改都应通过 `@action` 标记的函数进行,这有助于调试和确保状态更新的原子性。
+ - **避免在渲染中修改状态**:不要在 React 组件的 `render` 方法或函数组件的顶层直接修改 MobX 状态,这可能导致无限循环或不可预测的行为。
+ - **细粒度可观察性**:尽量使可观察状态的粒度更细,例如,将一个大对象分解为多个小对象,这样只有当特定部分改变时才会触发更新。
+ - **使用 `reaction` 或 `autorun` 进行副作用处理**:对于需要响应状态变化并执行副作用(如日志记录、网络请求)的场景,使用 `reaction` 或 `autorun`,而不是在组件中直接处理。
+ - **依赖注入**:使用 React Context 或其他依赖注入模式来提供 MobX store,避免 prop drilling。
+ - **严格模式(`useStrict`)**:在开发模式下启用严格模式,强制所有状态修改都通过 action 进行,有助于早期发现问题。
+ - **测试**:为 MobX store 编写单元测试,确保状态逻辑的正确性。
+ - **避免过度使用 MobX**:对于简单的组件内部状态,可以考虑使用 React 的 `useState` 和 `useReducer`,而不是总是引入 MobX。
diff --git a/rules/frontend/react/mobx/mobx-dependency-injection.mdc b/rules/frontend/react/mobx/mobx-dependency-injection.mdc
index a1c3fe5..82a8fba 100644
--- a/rules/frontend/react/mobx/mobx-dependency-injection.mdc
+++ b/rules/frontend/react/mobx/mobx-dependency-injection.mdc
@@ -1,5 +1,52 @@
---
-description: 为 stores 实现适当的依赖注入。
+description: "为 stores 实现适当的依赖注入"
globs: src/**/*.ts
---
-- 为 stores 实现适当的依赖注入。
+- **为 stores 实现适当的依赖注入**:
+ - **使用 React Context 提供 store**:
+ - 推荐使用 React Context API 来将 MobX store 注入到组件树中,避免手动通过 props 层层传递(prop drilling)。
+ - 创建一个 `StoreContext`,并在应用程序的根组件中使用 `Provider` 提供 store 实例。
+ - 示例:
+ ```jsx
+ // stores/index.js
+ import { createContext, useContext } from 'react';
+ import { RootStore } from './RootStore';
+
+ export const RootStoreInstance = new RootStore();
+ export const StoreContext = createContext(RootStoreInstance);
+ export const useStore = () => useContext(StoreContext);
+
+ // App.js
+ import React from 'react';
+ import { StoreContext, RootStoreInstance } from './stores';
+
+ function App() {
+ return (
+
+ {/* Your application components */}
+
+ );
+ }
+ ```
+ - **自定义 Hook 简化使用**:
+ - 创建一个自定义 Hook(如 `useStore`)来简化组件中对 store 的访问,提高代码可读性。
+ - 示例:
+ ```jsx
+ // components/MyComponent.js
+ import React from 'react';
+ import { observer } from 'mobx-react-lite';
+ import { useStore } from '../stores';
+
+ const MyComponent = observer(() => {
+ const { userStore } = useStore();
+
+ return (
+
+
User Name: {userStore.name}
+
+
+ );
+ });
+ ```
+ - **测试友好**:依赖注入使得在单元测试中替换或模拟 store 变得容易,提高了测试的独立性和效率。
+ - **避免全局变量**:避免将 store 实例作为全局变量直接导入,这会降低模块的独立性和可测试性。
diff --git a/rules/frontend/react/mobx/mobx-devtools.mdc b/rules/frontend/react/mobx/mobx-devtools.mdc
index 254c6f1..53e5889 100644
--- a/rules/frontend/react/mobx/mobx-devtools.mdc
+++ b/rules/frontend/react/mobx/mobx-devtools.mdc
@@ -1,5 +1,46 @@
---
-description: 利用 MobX DevTools 调试 MobX 应用程序。
+description: "利用 MobX DevTools 调试 MobX 应用程序"
globs: src/**/*.ts
---
-- 利用 MobX DevTools 进行调试。
+- **利用 MobX DevTools 调试 MobX 应用程序**:
+ - **安装**:
+ - 对于 Chrome 或 Firefox 浏览器,安装 MobX DevTools 扩展。
+ - 在项目中安装 `mobx-react-devtools` 包(通常仅在开发环境使用):
+ ```bash
+ npm install --save-dev mobx-react-devtools
+ # 或者
+ yarn add --dev mobx-react-devtools
+ ```
+ - **集成**:
+ - 在应用程序的入口文件(如 `index.js` 或 `App.js`)中导入并渲染 `DevTools` 组件。
+ - 示例:
+ ```jsx
+ import React from 'react';
+ import ReactDOM from 'react-dom/client';
+ import App from './App';
+
+ // 仅在开发环境导入 DevTools
+ if (process.env.NODE_ENV === 'development') {
+ const DevTools = require('mobx-react-devtools').default;
+ ReactDOM.createRoot(document.getElementById('root')).render(
+
+
+
+
+ );
+ } else {
+ ReactDOM.createRoot(document.getElementById('root')).render(
+
+
+
+ );
+ }
+ ```
+ - **功能**:
+ - **状态检查**:实时查看 MobX store 的状态,包括可观察数据、计算值和 action。
+ - **时间旅行调试**:回溯和重放状态变化,帮助理解数据流和定位问题。
+ - **Action 追踪**:记录所有 action 的执行,显示其参数和对状态的影响。
+ - **性能分析**:识别哪些组件因为哪些状态变化而重新渲染,优化性能。
+ - **最佳实践**:
+ - 仅在开发环境中使用 MobX DevTools,避免在生产环境中打包。
+ - 结合浏览器开发者工具一起使用,更全面地调试应用程序。
diff --git a/rules/frontend/react/mobx/mobx-react-lite-usage.mdc b/rules/frontend/react/mobx/mobx-react-lite-usage.mdc
index 9be49f4..3ba00b2 100644
--- a/rules/frontend/react/mobx/mobx-react-lite-usage.mdc
+++ b/rules/frontend/react/mobx/mobx-react-lite-usage.mdc
@@ -1,5 +1,53 @@
---
-description: 在使用 MobX 与 React Lite 时强制执行最佳实践。
+description: "在使用 MobX 与 React Lite 时强制执行最佳实践"
globs: src/components/**/*.tsx
---
-- 使用 MobX-react-lite 以在函数式组件中获得最佳性能。
+- **使用 MobX-react-lite 以在函数式组件中获得最佳性能**:
+ - **`observer` HOC 或 `useObserver` Hook**:
+ - 对于函数式组件,推荐使用 `mobx-react-lite` 提供的 `observer` 高阶组件(HOC)或 `useObserver` Hook 来包裹组件,使其能够响应 MobX 状态的变化。
+ - `observer` HOC 示例:
+ ```jsx
+ import React from 'react';
+ import { observer } from 'mobx-react-lite';
+ import { useStore } from '../stores';
+
+ const TodoList = observer(() => {
+ const { todoStore } = useStore();
+
+ return (
+
+ {todoStore.todos.map(todo => (
+
{todo.text}
+ ))}
+
+ );
+ });
+
+ export default TodoList;
+ ```
+ - `useObserver` Hook 示例(适用于需要更细粒度控制渲染的场景):
+ ```jsx
+ import React from 'react';
+ import { useObserver } from 'mobx-react-lite';
+ import { useStore } from '../stores';
+
+ const TodoItem = ({ todo }) => {
+ return useObserver(() => (
+
+ {todo.text}
+
+
+ ));
+ };
+
+ export default TodoItem;
+ ```
+ - **性能优化**:
+ - `mobx-react-lite` 针对函数式组件进行了优化,只在组件实际观察到的数据发生变化时才重新渲染组件,从而最大限度地减少不必要的渲染。
+ - 避免在 `observer` 组件内部解构 MobX store 的可观察属性,这可能导致组件观察到整个 store 而不是特定属性,从而触发不必要的重新渲染。应在组件内部访问具体属性。
+ - **与 Hooks 结合使用**:
+ - `mobx-react-lite` 与 React Hooks 完美结合,可以在 `observer` 组件内部自由使用 `useState`, `useEffect`, `useContext` 等 Hooks。
+ - **轻量级**:
+ - `mobx-react-lite` 是一个轻量级的包,只提供了 MobX 与 React 函数式组件集成的核心功能,没有额外的负担。
diff --git a/rules/frontend/react/mobx/mobx-reaction-usage.mdc b/rules/frontend/react/mobx/mobx-reaction-usage.mdc
index e6db5e3..1750827 100644
--- a/rules/frontend/react/mobx/mobx-reaction-usage.mdc
+++ b/rules/frontend/react/mobx/mobx-reaction-usage.mdc
@@ -1,5 +1,56 @@
---
-description: 使用 reaction 处理基于可观察变化的副作用。
+description: "使用 reaction 处理基于可观察变化的副作用"
globs: src/**/*.ts
---
-- 使用 reaction 处理基于可观察变化的副作用。
+- **使用 `reaction` 处理基于可观察变化的副作用**:
+ - **`reaction` 的作用**:
+ - `reaction` 是 MobX 提供的一种副作用处理机制,它接受两个函数作为参数:第一个函数(`data` 函数)跟踪其内部使用的可观察数据,并返回一个值;第二个函数(`effect` 函数)接收 `data` 函数的返回值,并在 `data` 函数返回的值发生变化时执行。
+ - 与 `autorun` 不同,`reaction` 允许你更精确地控制哪些数据变化会触发副作用,并且 `effect` 函数不会在初始化时立即运行。
+ - **使用场景**:
+ - 当你需要根据 MobX 状态的变化执行一些副作用,例如:
+ - 异步数据加载(例如,当用户 ID 变化时加载用户数据)。
+ - 订阅外部服务或事件。
+ - 写入本地存储(localStorage)。
+ - 打印日志。
+ - **示例**:
+ ```typescript
+ import { makeObservable, observable, action, reaction } from 'mobx';
+
+ class UserStore {
+ @observable userId = 0;
+ @observable userData = null;
+
+ constructor() {
+ makeObservable(this);
+ reaction(
+ () => this.userId, // data 函数:跟踪 userId
+ async (userId) => {
+ if (userId > 0) {
+ console.log(`Fetching user data for userId: ${userId}`);
+ // 模拟异步请求
+ this.userData = await new Promise(resolve =>
+ setTimeout(() => resolve({ id: userId, name: `User ${userId}` }), 500)
+ );
+ } else {
+ this.userData = null;
+ }
+ },
+ { fireImmediately: true } // 立即执行一次 effect 函数
+ );
+ }
+
+ @action
+ setUserId(id: number) {
+ this.userId = id;
+ }
+ }
+
+ const userStore = new UserStore();
+ userStore.setUserId(1); // 这将触发 reaction,加载用户数据
+ // userStore.setUserId(2); // 再次触发 reaction
+ ```
+ - **最佳实践**:
+ - 尽量在 store 内部使用 `reaction` 来处理与状态相关的副作用,保持组件的纯粹性。
+ - 避免在 `data` 函数中执行耗时操作,因为它会频繁运行。
+ - 如果副作用需要清理(例如,取消订阅),`reaction` 函数会返回一个清理函数,可以在组件卸载时调用它。
+ - 对于简单的、不依赖于特定数据变化的副作用,可以考虑使用 `autorun`。
diff --git a/rules/frontend/react/mobx/mobx-store-implementation.mdc b/rules/frontend/react/mobx/mobx-store-implementation.mdc
index 06b455b..fec8c60 100644
--- a/rules/frontend/react/mobx/mobx-store-implementation.mdc
+++ b/rules/frontend/react/mobx/mobx-store-implementation.mdc
@@ -1,8 +1,104 @@
---
-description: 实现 MobX stores 进行应用程序状态管理的指导原则。
+description: "实现 MobX stores 进行应用程序状态管理的指导原则"
globs: src/stores/**/*.ts
---
-- 实现 stores 来管理应用程序状态。
-- 利用计算值处理派生状态。
-- 使用 actions 修改可观察状态。
-- 在异步 actions 中实现适当的错误处理。
+- **实现 stores 来管理应用程序状态**:
+ - **定义可观察状态**:
+ - 使用 `@observable` 或 `makeObservable` 定义 store 中需要响应式跟踪的状态。
+ - 示例:
+ ```typescript
+ import { makeObservable, observable, action, computed } from 'mobx';
+
+ class TodoStore {
+ @observable todos = [];
+ @observable isLoading = false;
+ @observable error = null;
+
+ constructor() {
+ makeObservable(this);
+ }
+
+ // ... actions and computed values
+ }
+ ```
+ - **利用计算值(`@computed`)处理派生状态**:
+ - 对于可以从现有可观察状态派生出的数据,使用 `@computed` 属性。它们是惰性求值的,并且只有在依赖的可观察数据发生变化时才会重新计算。
+ - 示例:
+ ```typescript
+ class TodoStore {
+ // ...
+ @computed
+ get completedTodosCount() {
+ return this.todos.filter(todo => todo.completed).length;
+ }
+
+ @computed
+ get uncompletedTodos() {
+ return this.todos.filter(todo => !todo.completed);
+ }
+ }
+ ```
+ - **使用动作(`@action`)修改可观察状态**:
+ - 所有修改 MobX store 可观察状态的函数都应该用 `@action` 标记。这有助于 MobX 批量更新,提高性能,并使调试更容易。
+ - 示例:
+ ```typescript
+ class TodoStore {
+ // ...
+ @action
+ addTodo(text: string) {
+ this.todos.push({ id: Date.now(), text, completed: false });
+ }
+
+ @action
+ toggleTodo(id: number) {
+ const todo = this.todos.find(t => t.id === id);
+ if (todo) {
+ todo.completed = !todo.completed;
+ }
+ }
+ }
+ ```
+ - **在异步 actions 中实现适当的错误处理**:
+ - 对于异步操作(如 API 调用),应在 action 中处理加载状态、成功和失败情况,并捕获错误。
+ - 示例:
+ ```typescript
+ class TodoStore {
+ // ...
+ @action
+ async fetchTodos() {
+ this.isLoading = true;
+ this.error = null;
+ try {
+ // 模拟 API 调用
+ const response = await new Promise(resolve =>
+ setTimeout(() => resolve([{ id: 1, text: 'Learn MobX', completed: false }]), 1000)
+ );
+ this.todos = response;
+ } catch (e) {
+ this.error = e;
+ } finally {
+ this.isLoading = false;
+ }
+ }
+ }
+ ```
+ - **Store 的组合**:
+ - 对于大型应用,可以将多个相关的 store 组合成一个根 store,方便统一管理和访问。
+ - 示例:
+ ```typescript
+ // RootStore.ts
+ import { makeObservable, observable } from 'mobx';
+ import { TodoStore } from './TodoStore';
+ import { UserStore } from './UserStore';
+
+ export class RootStore {
+ @observable todoStore: TodoStore;
+ @observable userStore: UserStore;
+
+ constructor() {
+ makeObservable(this);
+ this.todoStore = new TodoStore();
+ this.userStore = new UserStore();
+ }
+ }
+ ```
diff --git a/rules/frontend/react/mobx/mobx-strict-mode.mdc b/rules/frontend/react/mobx/mobx-strict-mode.mdc
index 81229f7..3d63228 100644
--- a/rules/frontend/react/mobx/mobx-strict-mode.mdc
+++ b/rules/frontend/react/mobx/mobx-strict-mode.mdc
@@ -1,5 +1,32 @@
---
-description: 为 MobX 强制执行严格模式以获得更好的调试体验。
+description: "为 MobX 强制执行严格模式以获得更好的调试体验"
globs: src/stores/**/*.ts
---
-- 为 MobX 实现严格模式以获得更好的调试体验。
+- **为 MobX 实现严格模式以获得更好的调试体验**:
+ - **什么是严格模式**:
+ - MobX 的严格模式(Strict Mode)是一种开发辅助功能,它强制所有状态修改都必须通过 `action` 进行。这意味着你不能在 `action` 之外直接修改任何可观察状态。
+ - 启用严格模式有助于在开发阶段捕获意外的状态修改,从而避免难以调试的 bug。
+ - **如何启用**:
+ - 在应用程序的入口文件或 MobX store 的初始化阶段,使用 `configure` 函数来启用严格模式。
+ - 示例:
+ ```typescript
+ import { configure } from 'mobx';
+
+ // 仅在开发环境启用严格模式
+ if (process.env.NODE_ENV === 'development') {
+ configure({
+ enforceActions: 'always',
+ });
+ }
+ ```
+ - `enforceActions` 的可选值:
+ - `'never'` (默认):允许在任何地方修改状态。
+ - `'observed'`:只允许在 `action` 中修改被 MobX 观察到的状态。
+ - `'always'`:强制所有状态修改都必须在 `action` 中进行,这是最严格的模式,推荐在开发环境使用。
+ - **优点**:
+ - **早期错误检测**:在开发阶段就能发现并修复不规范的状态修改,避免潜在的运行时问题。
+ - **清晰的数据流**:强制通过 `action` 修改状态,使得应用程序的数据流更加清晰和可预测。
+ - **更好的调试体验**:当状态修改不符合规则时,MobX 会抛出错误,帮助开发者快速定位问题。
+ - **注意事项**:
+ - 严格模式主要用于开发环境,不建议在生产环境中使用,因为它会增加一些运行时开销。
+ - 确保所有状态修改都包裹在 `action` 中,包括异步操作中的状态更新。
diff --git a/rules/frontend/react/mobx/observer-hoc-or-useobserver-hook.mdc b/rules/frontend/react/mobx/observer-hoc-or-useobserver-hook.mdc
index 76540fa..ac672bc 100644
--- a/rules/frontend/react/mobx/observer-hoc-or-useobserver-hook.mdc
+++ b/rules/frontend/react/mobx/observer-hoc-or-useobserver-hook.mdc
@@ -1,5 +1,60 @@
---
-description: 对响应式组件使用 Observer HOC 或 useObserver hook。
+description: "对响应式组件使用 Observer HOC 或 useObserver hook"
globs: src/components/**/*.tsx
---
-- 对响应式组件使用 observer HOC 或 useObserver hook。
+- **对响应式组件使用 `observer` HOC 或 `useObserver` hook**:
+ - **`observer` HOC(高阶组件)**:
+ - `observer` 是 `mobx-react-lite` 库提供的一个高阶组件,用于包裹 React 函数式组件或类组件,使其能够响应 MobX 状态的变化。
+ - 当被包裹组件中使用的任何可观察数据发生变化时,`observer` 会触发组件的重新渲染。
+ - 示例:
+ ```jsx
+ import React from 'react';
+ import { observer } from 'mobx-react-lite';
+ import { useStore } from '../stores';
+
+ const UserProfile = observer(() => {
+ const { userStore } = useStore();
+
+ return (
+
+
{userStore.name}
+
Email: {userStore.email}
+
+
+ );
+ });
+
+ export default UserProfile;
+ ```
+ - **`useObserver` Hook**:
+ - `useObserver` 是 `mobx-react-lite` 提供的另一个选择,它是一个 React Hook,允许你在函数式组件的内部定义一个响应式渲染块。
+ - 它适用于需要更细粒度控制渲染,或者只希望组件的某个部分响应 MobX 状态变化的场景。
+ - 示例:
+ ```jsx
+ import React from 'react';
+ import { useObserver } from 'mobx-react-lite';
+ import { useStore } from '../stores';
+
+ const ProductDisplay = ({ productId }) => {
+ const { productStore } = useStore();
+
+ return useObserver(() => {
+ const product = productStore.getProductById(productId);
+ if (!product) return Loading...
;
+
+ return (
+
+
{product.name}
+
Price: ${product.price}
+
Stock: {product.stock}
+
+ );
+ });
+ };
+
+ export default ProductDisplay;
+ ```
+ - **选择建议**:
+ - **优先使用 `observer` HOC**:对于大多数情况,直接使用 `observer` HOC 包裹整个函数式组件是更简洁和推荐的做法。它会自动处理组件内部所有可观察数据的响应式更新。
+ - **在特定场景使用 `useObserver` Hook**:当你需要在一个组件中,只有部分 UI 响应 MobX 状态变化,或者需要将响应式逻辑封装在自定义 Hook 中时,`useObserver` 提供了更大的灵活性。
+ - **性能**:两者在性能上都非常高效,因为 `mobx-react-lite` 实现了精确的响应式更新,只在实际观察到的数据发生变化时才触发渲染。
diff --git a/rules/frontend/react/mobx/react-general-preferences.mdc b/rules/frontend/react/mobx/react-general-preferences.mdc
index c1873f0..a076e8e 100644
--- a/rules/frontend/react/mobx/react-general-preferences.mdc
+++ b/rules/frontend/react/mobx/react-general-preferences.mdc
@@ -1,5 +1,43 @@
---
-description: 一般 React 偏好,优先使用带有 hooks 的函数式组件。
+description: "一般 React 偏好,优先使用带有 hooks 的函数式组件"
globs: src/**/*.tsx
---
-- 优先使用带有 hooks 的函数式组件。
+- **优先使用带有 Hooks 的函数式组件**:
+ - **现代化开发**:
+ - 函数式组件结合 Hooks 是 React 官方推荐的现代开发范式。它使得组件逻辑更清晰、可复用性更高,并且避免了类组件中 `this` 的复杂性。
+ - **代码简洁性**:
+ - Hooks 允许你在函数式组件中直接使用状态(`useState`)、生命周期(`useEffect`)和其他 React 特性,从而减少了样板代码,使组件更简洁。
+ - 示例:
+ ```jsx
+ import React, { useState, useEffect } from 'react';
+ import { observer } from 'mobx-react-lite';
+ import { useStore } from '../stores';
+
+ const Counter = observer(() => {
+ const [count, setCount] = useState(0);
+ const { appStore } = useStore();
+
+ useEffect(() => {
+ console.log('Component mounted or updated');
+ return () => console.log('Component unmounted');
+ }, []);
+
+ return (
+
+
Count: {count}
+
+
App Status: {appStore.status}
+
+ );
+ });
+
+ export default Counter;
+ ```
+ - **逻辑复用**:
+ - 自定义 Hooks 使得逻辑复用变得非常简单和直观,你可以将状态逻辑和副作用封装成可独立测试和复用的单元。
+ - **性能优化**:
+ - 结合 `React.memo`、`useCallback` 和 `useMemo` 等 Hooks,可以对函数式组件进行更细粒度的性能优化,避免不必要的重新渲染。
+ - **与 MobX 兼容性**:
+ - `mobx-react-lite` 库专门为函数式组件和 Hooks 优化,提供了 `observer` HOC 和 `useObserver` Hook,使得 MobX 状态管理在函数式组件中表现出色。
+ - **社区支持**:
+ - 随着 Hooks 的普及,越来越多的库和工具都优先支持函数式组件和 Hooks,这使得开发生态更加丰富和活跃。
diff --git a/rules/frontend/react/mobx/typescript-with-mobx.mdc b/rules/frontend/react/mobx/typescript-with-mobx.mdc
index 355eead..bead2b4 100644
--- a/rules/frontend/react/mobx/typescript-with-mobx.mdc
+++ b/rules/frontend/react/mobx/typescript-with-mobx.mdc
@@ -1,5 +1,75 @@
---
-description: 如何在 MobX 中使用 TypeScript 的说明。
+description: "如何在 MobX 中使用 TypeScript 的说明"
globs: src/**/*.ts
---
-- 对 MobX 使用 TypeScript 确保类型安全。
+- **对 MobX 使用 TypeScript 确保类型安全**:
+ - **安装必要的类型定义**:
+ - 对于 MobX 核心库和 `mobx-react-lite`,通常它们自带 TypeScript 类型定义。如果遇到类型错误,可能需要手动安装 `@types/mobx` 和 `@types/mobx-react-lite`(如果它们不是内置的)。
+ - **使用装饰器(Decorators)**:
+ - MobX 推荐使用装饰器 (`@observable`, `@action`, `@computed`) 来定义可观察状态、动作和计算值。在 TypeScript 中使用装饰器需要启用相应的编译器选项。
+ - 在 `tsconfig.json` 中启用:
+ ```json
+ {
+ "compilerOptions": {
+ "experimentalDecorators": true,
+ "emitDecoratorMetadata": true
+ }
+ }
+ ```
+ - 示例:
+ ```typescript
+ import { makeObservable, observable, action, computed } from 'mobx';
+
+ class UserStore {
+ @observable name: string = 'John Doe';
+ @observable age: number = 30;
+
+ constructor() {
+ makeObservable(this);
+ }
+
+ @action
+ setAge(newAge: number) {
+ this.age = newAge;
+ }
+
+ @computed
+ get isAdult() {
+ return this.age >= 18;
+ }
+ }
+ ```
+ - **`makeObservable` 或 `makeAutoObservable`**:
+ - 对于 TypeScript 项目,推荐在类的 `constructor` 中调用 `makeObservable(this)` 或 `makeAutoObservable(this)` 来明确地将类属性标记为可观察的。这比使用装饰器更现代,并且在某些环境中可能不需要额外的 Babel 配置。
+ - 示例(使用 `makeObservable`):
+ ```typescript
+ import { makeObservable, observable, action, computed } from 'mobx';
+
+ class UserStore {
+ name: string = 'John Doe';
+ age: number = 30;
+
+ constructor() {
+ makeObservable(this, {
+ name: observable,
+ age: observable,
+ setAge: action,
+ isAdult: computed,
+ });
+ }
+
+ setAge(newAge: number) {
+ this.age = newAge;
+ }
+
+ get isAdult() {
+ return this.age >= 18;
+ }
+ }
+ ```
+ - **类型推断与显式类型**:
+ - TypeScript 能够很好地推断 MobX store 的类型,但在复杂场景下,显式地为属性、参数和返回值添加类型注解可以提高代码的可读性和健壮性。
+ - **接口和类型别名**:
+ - 定义清晰的接口(`interface`)或类型别名(`type`)来描述 MobX store 的状态结构和 action 的参数,有助于保持代码的一致性和可维护性。
+ - **与 React 组件结合**:
+ - 在 React 函数式组件中使用 `mobx-react-lite` 的 `observer` HOC 或 `useObserver` Hook 时,确保组件 props 和 MobX store 访问的类型正确。
diff --git a/rules/frontend/react/nextjs-14-seo/README.md b/rules/frontend/react/nextjs-14-seo/README.md
index ddf0ef9..d7f2903 100644
--- a/rules/frontend/react/nextjs-14-seo/README.md
+++ b/rules/frontend/react/nextjs-14-seo/README.md
@@ -4,7 +4,15 @@
## 你可以构建什么
-Next.js 14 设计到代码平台:一个允许用户上传流行格式设计文件的 Web 应用程序,平台分析这些文件后生成使用 TypeScript 和 Tailwind CSS 的完整 Next.js 14 应用程序。该应用将遵循最佳实践并确保代码模块化且可用于生产。AI 驱动的 Next.js 14 代码片段生成器:一个供开发人员输入设计描述或草图并获得使用 Tailwind CSS 的 Next.js 14 TypeScript 代码片段的工具,专注于创建服务器组件并确保 SEO 和性能优化。Next.js 14 代码审计服务:一个在线服务,接受现有的 Next.js TypeScript 项目并审计其是否符合 Next.js 14 和 React 最佳实践,在服务器端渲染、缓存、数据获取和组件化等方面提出改进建议。可视化代码到 Tailwind 转换器:一个帮助开发人员将传统 CSS 样式转换为 Tailwind CSS 类的工具。该应用将分析现有样式并通过直观的可视化界面提供等效的响应式 Tailwind CSS 配置。Next.js 14 教育平台:该平台将提供关于 Next.js 14 的交互式课程和教程,专注于使用 TypeScript 和 Tailwind CSS 构建应用程序。课程将涵盖状态管理、路由、SEO 优化和性能增强。Next.js 自动化 SEO 优化器:一个扫描 Next.js 项目的插件或 Web 服务,根据 Next.js 14 的元数据 API 建议元数据设置,以结构化和自动化的方式改善搜索引擎优化。Tailwind CSS 响应式检查器:一个在线工具,开发人员可以输入其 Tailwind CSS 代码并检查其设计在各种设备上是否响应式。该工具将根据最佳实践提供改进建议。基于组件的设计游乐场:一个交互式 Web 应用,允许用户使用 TypeScript 和 Tailwind CSS 创建可重用的 Next.js 14 组件,在各种应用程序布局中立即预览它们。该平台将强调基于组件的架构和高效的状态管理。Next.js 动态数据获取仪表板:一个提供仪表板的服务,用于设置和跟踪使用 Next.js 14 功能的高效数据获取策略,专注于缓存、流式传输和并行数据获取技术。Web 应用实时可访问性分析器:一个可访问性检查工具,评估 Next.js 应用程序的 ARIA 合规性和语义 HTML 使用情况,提供实时反馈和建议以增强 Web 可访问性。
+- **Next.js 14 设计到代码平台**:一个允许用户上传流行格式设计文件的 Web 应用程序,平台分析这些文件后生成使用 TypeScript 和 Tailwind CSS 的完整 Next.js 14 应用程序。该应用将遵循最佳实践并确保代码模块化且可用于生产。
+- **AI 驱动的 Next.js 14 代码片段生成器**:一个供开发人员输入设计描述或草图并获得使用 Tailwind CSS 的 Next.js 14 TypeScript 代码片段的工具,专注于创建服务器组件并确保 SEO 和性能优化。
+- **Next.js 14 代码审计服务**:一个在线服务,接受现有的 Next.js TypeScript 项目并审计其是否符合 Next.js 14 和 React 最佳实践,在服务器端渲染、缓存、数据获取和组件化等方面提出改进建议。- **可视化代码到 Tailwind 转换器**:一个帮助开发人员将传统 CSS 样式转换为 Tailwind CSS 类的工具。该应用将分析现有样式并通过直观的可视化界面提供等效的响应式 Tailwind CSS 配置。
+- **Next.js 14 教育平台**:该平台将提供关于 Next.js 14 的交互式课程和教程,专注于使用 TypeScript 和 Tailwind CSS 构建应用程序。课程将涵盖状态管理、路由、SEO 优化和性能增强。
+- **Next.js 自动化 SEO 优化器**:一个扫描 Next.js 项目的插件或 Web 服务,根据 Next.js 14 的元数据 API 建议元数据设置,以结构化和自动化的方式改善搜索引擎优化。
+- **Tailwind CSS 响应式检查器**:一个在线工具,开发人员可以输入其 Tailwind CSS 代码并检查其设计在各种设备上是否响应式。该工具将根据最佳实践提供改进建议。
+- **基于组件的设计游乐场**:一个交互式 Web 应用,允许用户使用 TypeScript 和 Tailwind CSS 创建可重用的 Next.js 14 组件,在各种应用程序布局中立即预览它们。该平台将强调基于组件的架构和高效的状态管理。
+- **Next.js 动态数据获取仪表板**:一个提供仪表板的服务,用于设置和跟踪使用 Next.js 14 功能的高效数据获取策略,专注于缓存、流式传输和并行数据获取技术。
+- **Web 应用实时可访问性分析器**:一个可访问性检查工具,评估 Next.js 应用程序的 ARIA 合规性和语义 HTML 使用情况,提供实时反馈和建议以增强 Web 可访问性。
## 优势
diff --git a/rules/frontend/react/nextjs-basic/README.md b/rules/frontend/react/nextjs-basic/README.md
index e14cc56..4a433f1 100644
--- a/rules/frontend/react/nextjs-basic/README.md
+++ b/rules/frontend/react/nextjs-basic/README.md
@@ -6,6 +6,24 @@
学习用交互式编码助手:使用指定技术栈的 Web 应用程序,为新开发人员提供交互式编码课程和练习,集成 LLM 进行实时反馈、解释和 TypeScript 逐步指导。它可以允许用户在浏览器中编写代码、接收反馈并查看实际示例。AI 驱动的代码审查工具:开发一个在线平台,开发人员可以提交代码进行 AI 辅助审查,使用 LLM。该工具将分析代码库,提供改进建议,检测潜在错误,并遵循最佳实践,从而提高代码质量和性能。自动化文档生成器:创建一个利用 LLM 从用 TypeScript 编写的代码库自动生成全面清晰文档的服务,解释每个函数的目的、参数和典型用例。AI 驱动的错误修复服务:一个开发人员可以提交带有错误的代码片段的平台,LLM 将分析并建议修复。与所述前端和后端的集成将确保平稳运行,直接向 TypeScript 代码建议更改。协作编码环境:使用 Next.js 构建实时协作编码平台,允许多个用户编辑同一代码库,通过 LLM 集成提供实时反馈和建议,类似于编码的 Google Docs。个性化学习路径生成器:一个根据开发人员当前技能水平和期望目标提供自定义学习路径的应用程序。它使用 LLM 定制课程内容,并在 TypeScript 中提供练习,通过 Next.js 中的交互式示例并行。代码优化 AI 聊天机器人:开发一个使用集成到 Web 应用中的 LLM 的聊天机器人,开发人员可以粘贴代码片段以获得优化技巧和重构建议,以提高效率和性能。AI 驱动的 UI/UX 改进顾问:一个接受现有 Next.js 项目并使用 LLM 建议 UI/UX 改进的服务,利用 Tailwind CSS 进行设计增强,使用 Lucide React 改善图标美学。定制教程创建器:一个根据代码库输入自动创建教程的工具,使用 LLM 为 Next.js 和 TypeScript 中的特定编程任务或应用功能形成可读的逐步指南。智能代码库搜索引擎:专门为代码库实现搜索引擎,允许开发人员用自然语言输入查询来定位相关代码段。它使用 LLM 理解查询的意图和上下文,提供准确结果。
+## 技术栈要求
+
+- **核心框架**: Next.js 14+(App Router模式)
+- **语言**: TypeScript 5.0+
+- **样式**: Tailwind CSS + CSS Modules
+- **UI组件**: shadcn/ui + Radix Primitives
+- **图标库**: Lucide React
+- **状态管理**: React Context + useReducer
+- **API交互**: tRPC + Zod验证
+
+## 编码规范
+
+1. **文件组织**: 遵循Next.js官方项目结构
+2. **类型定义**: 所有props和API响应必须定义TS接口
+3. **样式隔离**: 组件级CSS Modules
+4. **性能优化**: 自动代码分割+动态导入
+5. **安全实践**: 输入验证+CSRF防护
+
## 优势
diff --git a/rules/frontend/react/nextjs-basic/assistant-response-rules.mdc b/rules/frontend/react/nextjs-basic/assistant-response-rules.mdc
index eccd0d6..38fa3c9 100644
--- a/rules/frontend/react/nextjs-basic/assistant-response-rules.mdc
+++ b/rules/frontend/react/nextjs-basic/assistant-response-rules.mdc
@@ -1,14 +1,24 @@
---
-description: 定义助手应如何响应,包括其作为高级配对程序员的角色和响应所需格式,适用于所有文件。
+description: "定义助手应如何响应,包括其作为高级配对程序员的角色和响应所需格式,适用于所有文件"
globs: *
---
-- 你是用户的高级、好奇且聪明的配对程序员。让我们逐步进行:
-- 除非你只是回答一个快速问题,否则以以下内容开始你的响应:
- """
+- **角色定位**:你是用户的高级、好奇且聪明的配对程序员。让我们逐步进行。
+- **响应格式**:除非你只是回答一个快速问题,否则以以下内容开始你的响应:
+ ```
语言 > 专家:{使用的编程语言} > {主题专家专业角色}
包括:所需库、包和关键语言功能的 CSV 列表(如果有)
要求:详细程度、标准和软件设计要求的定性描述
计划
简要列出你的逐步计划,包括任何尚未处理的组件
- """
-- 像选定语言的专家专业人士一样行动并在遵循编码风格的同时响应。如果使用 Jupyter,现在开始。记住在顶部添加路径/文件名注释。
+ ```
+- **行为准则**:像选定语言的专家专业人士一样行动,并遵循编码风格进行响应。如果使用 Jupyter,现在开始。记住在顶部添加路径/文件名注释。
+- **代码详细程度**:
+ - 如果是新文件,提供完整代码
+ - 如果是现有文件修改,仅提供修改部分
+- **逐步推理**:
+ - 每次响应都应包含清晰的逐步推理
+ - 解释为什么做出这些选择
+- **避免道歉**:不要为错误道歉,直接修复它们
+- **提问**:
+ - 如果对需求或技术栈有疑问,可以提问
+ - 确保问题具体且有助于推进任务
diff --git a/rules/frontend/react/nextjs-basic/backend-stack-rules.mdc b/rules/frontend/react/nextjs-basic/backend-stack-rules.mdc
index 6c71e76..e07ed48 100644
--- a/rules/frontend/react/nextjs-basic/backend-stack-rules.mdc
+++ b/rules/frontend/react/nextjs-basic/backend-stack-rules.mdc
@@ -1,6 +1,10 @@
---
-description: 指定后端技术栈,包括 Next.js API Routes 和 TypeScript,适用于所有后端文件。
+description: "指定后端技术栈,包括 Next.js API Routes 和 TypeScript,适用于所有后端文件"
globs: backend/**/*.*
---
-- 框架:Next.js API Routes(用于无服务器函数)
-- 语言:TypeScript(用于 API 路由)
+- **框架**:Next.js API Routes(用于无服务器函数)
+- **语言**:TypeScript(用于 API 路由)
+- **数据验证**:Zod(用于 API 请求和响应的数据验证)
+- **ORM/数据库**:根据项目需求选择,例如 Prisma, Drizzle ORM 等
+- **认证**:NextAuth.js(如果需要用户认证)
+- **部署**:Vercel(推荐用于Next.js应用)
diff --git a/rules/frontend/react/nextjs-basic/coding-process-rules.mdc b/rules/frontend/react/nextjs-basic/coding-process-rules.mdc
index 01edee8..f587a62 100644
--- a/rules/frontend/react/nextjs-basic/coding-process-rules.mdc
+++ b/rules/frontend/react/nextjs-basic/coding-process-rules.mdc
@@ -1,9 +1,9 @@
---
-description: 指定编码过程,包括逐步推理、优先级排序、在继续下一个文件之前完成一个文件,以及使用 TODO 注释,适用于所有文件。
+description: "指定编码过程,包括逐步推理、优先级排序、在继续下一个文件之前完成一个文件,以及使用 TODO 注释,适用于所有文件"
globs: *
---
-- 显示简洁的逐步推理
-- 优先考虑你将在每个响应中处理的任务/步骤
-- 在处理下一个文件之前完成一个文件
-- 如果无法完成代码,添加 TODO: 注释
-- 如果需要,中断自己并要求继续
+- **逐步推理**:显示简洁的逐步推理,解释决策过程。
+- **任务优先级**:优先考虑你将在每个响应中处理的任务/步骤,确保高效推进。
+- **文件完成度**:在处理下一个文件之前,务必完成当前文件的代码编写和相关修改。
+- **TODO注释**:如果无法完成代码或需要后续处理,请添加 `TODO:` 注释,明确待办事项。
+- **中断与继续**:如果需要用户介入或无法独立继续,可以中断并请求用户提供进一步指示。
diff --git a/rules/frontend/react/nextjs-basic/coding-style-rules.mdc b/rules/frontend/react/nextjs-basic/coding-style-rules.mdc
index f865946..b7423f9 100644
--- a/rules/frontend/react/nextjs-basic/coding-style-rules.mdc
+++ b/rules/frontend/react/nextjs-basic/coding-style-rules.mdc
@@ -1,7 +1,24 @@
---
-description: 定义编码风格指导原则,包括注释、模块化、DRY 原则、性能和安全性,适用于所有文件。
+description: "Next.js项目编码风格规范,涵盖注释规范、模块化设计、DRY原则、性能与安全最佳实践"
globs: *
---
-- 代码必须以路径/文件名作为单行注释开始
-- 注释必须主要描述目的,但在必要时也要描述效果
-- 优先考虑模块化、DRY、性能和安全性
+- **文件头注释**: 必须包含文件路径和主要功能说明
+ ```typescript
+ // src/components/ui/button.tsx
+ // 通用按钮组件,支持多种变体和尺寸
+ ```
+- **代码注释**:
+ - 复杂逻辑必须添加行内注释
+ - 避免无意义的注释(如"增加计数器")
+- **模块化**:
+ - 单一组件不超过300行
+ - 每个组件/钩子只做一件事
+- **DRY原则**:
+ - 重复逻辑抽象为自定义钩子
+ - 通用UI提取为共享组件
+- **性能**:
+ - 避免不必要的re-render
+ - 大数据列表使用虚拟滚动
+- **安全**:
+ - 所有用户输入必须验证
+ - 敏感操作需要二次确认
diff --git a/rules/frontend/react/nextjs-basic/editing-code-rules.mdc b/rules/frontend/react/nextjs-basic/editing-code-rules.mdc
index e2e7adc..fe2f384 100644
--- a/rules/frontend/react/nextjs-basic/editing-code-rules.mdc
+++ b/rules/frontend/react/nextjs-basic/editing-code-rules.mdc
@@ -1,5 +1,9 @@
---
-description: 优先返回完全编辑的文件并定义代码详细程度级别,适用于所有文件。
+description: "优先返回完全编辑的文件并定义代码详细程度级别,适用于所有文件"
globs: *
---
-- 返回完全编辑的文件
+- **返回完全编辑的文件**:每次代码修改后,应返回完整且经过编辑的文件内容,确保代码的完整性和可读性。
+- **代码详细程度**:
+ - 对于新创建的文件,提供完整的代码实现。
+ - 对于现有文件的修改,仅提供修改部分的代码,并清晰标示出修改前后的差异,以便用户快速理解。
+- **确保可运行性**:所有返回的代码片段都必须是可运行的,并且包含所有必要的依赖项和配置,以确保用户可以直接使用。
diff --git a/rules/frontend/react/nextjs-basic/frontend-stack-rules.mdc b/rules/frontend/react/nextjs-basic/frontend-stack-rules.mdc
index 257b2a1..5ea6ec2 100644
--- a/rules/frontend/react/nextjs-basic/frontend-stack-rules.mdc
+++ b/rules/frontend/react/nextjs-basic/frontend-stack-rules.mdc
@@ -1,9 +1,12 @@
---
-description: 指定前端技术栈,包括 React、TypeScript、Shadcn/UI、Tailwind CSS 和 Lucide React,适用于所有前端文件。
+description: "指定前端技术栈,包括 React、TypeScript、Shadcn/UI、Tailwind CSS 和 Lucide React,适用于所有前端文件"
globs: frontend/**/*.*
---
-- 框架:Next.js (React)
-- 语言:TypeScript
-- UI 组件:shadcn/ui(基于 Radix UI 原语)
-- 样式:Tailwind CSS
-- 图标:Lucide React
+- **核心框架**:Next.js (基于 React)
+- **语言**:TypeScript
+- **UI 组件库**:shadcn/ui(基于 Radix UI 原语构建,提供可定制的UI组件)
+- **样式框架**:Tailwind CSS(实用优先的CSS框架,用于快速构建自定义设计)
+- **图标库**:Lucide React(一套美观且高度可定制的开源图标库)
+- **状态管理**:React Context API 和 useReducer Hook(用于应用级状态管理)
+- **数据获取**:React Query 或 SWR(用于优化数据获取、缓存和同步)
+- **表单管理**:React Hook Form 和 Zod(用于表单状态管理和数据验证)
diff --git a/rules/frontend/react/nextjs-basic/general-assistant-rules.mdc b/rules/frontend/react/nextjs-basic/general-assistant-rules.mdc
index 2ea324e..c251bb6 100644
--- a/rules/frontend/react/nextjs-basic/general-assistant-rules.mdc
+++ b/rules/frontend/react/nextjs-basic/general-assistant-rules.mdc
@@ -1,7 +1,11 @@
---
-description: 为所有文件定义一般助手行为,包括如何处理错误、提问和理解项目技术栈。
+description: "为所有文件定义一般助手行为,包括如何处理错误、提问和理解项目技术栈"
globs: *
---
-- 对需求和技术栈的整体理解
-- 不要为错误道歉:修复它们
-- 如果编写代码,你可以询问技术栈假设
+- **全面理解**:对用户需求和项目技术栈有全面深入的理解。
+- **错误处理**:不要为错误道歉,而是直接着手修复它们,并解释修复过程。
+- **主动提问**:
+ - 在编写代码时,如果对技术栈的某些假设不确定,可以主动向用户提问以澄清。
+ - 提问应具体且有助于推进任务,避免模糊或不必要的问题。
+- **提供解决方案**:除了修复问题,还应提供优化建议或更好的实现方案。
+- **保持一致性**:在所有交互和代码输出中,保持行为和风格的一致性。
diff --git a/rules/frontend/react/nextjs-basic/history-and-next-task-rules.mdc b/rules/frontend/react/nextjs-basic/history-and-next-task-rules.mdc
index b997536..f2086d0 100644
--- a/rules/frontend/react/nextjs-basic/history-and-next-task-rules.mdc
+++ b/rules/frontend/react/nextjs-basic/history-and-next-task-rules.mdc
@@ -1,13 +1,16 @@
---
-description: 指定结束响应的格式,包括需求摘要、编写的代码、源代码树和下一个任务,适用于所有文件。
+description: "指定结束响应的格式,包括需求摘要、编写的代码、源代码树和下一个任务,适用于所有文件"
globs: *
---
-- 考虑整个聊天会话,并按以下方式结束你的响应:
- """
+- **响应结束格式**:考虑整个聊天会话,并按以下方式结束你的响应:
+ ```
历史:所有需求和你编写的所有代码的完整、简洁和压缩摘要
源代码树:(示例,替换表情符号)
(:floppy_disk:=已保存:文件链接,:warning:=未保存但已命名的片段,:ghost:=无文件名)file.ext:package: Class(如果存在)
(:white_check_mark:=已完成,:o:=有 TODO,:red_circle:=其他未完成)symbol:red_circle: 全局符号
等等。
下一个任务:未完成=下一个任务的简短描述 已完成=列出专家专业人士对增强/性能改进的建议。
- """
+ ```
+- **历史记录**:确保历史记录清晰、简洁,涵盖所有已完成的需求和代码。
+- **源代码树**:提供直观的源代码树表示,帮助用户快速了解文件状态。
+- **下一个任务**:明确指出下一步计划,保持任务的连续性和透明度。
diff --git a/rules/frontend/react/nextjs-basic/llm-integration-rules.mdc b/rules/frontend/react/nextjs-basic/llm-integration-rules.mdc
index 35dc404..3ff7224 100644
--- a/rules/frontend/react/nextjs-basic/llm-integration-rules.mdc
+++ b/rules/frontend/react/nextjs-basic/llm-integration-rules.mdc
@@ -1,6 +1,10 @@
---
-description: 指定 LLM 集成规则,包括使用 Python 包装器和 API 端点,适用于所有 LLM 相关文件。
+description: "指定 LLM 集成规则,包括使用 Python 包装器和 API 端点,适用于所有 LLM 相关文件"
globs: llm/**/*.*
---
-- 用于 LLM 交互的 Python 包装器
-- 连接前端与 Python 后端的 API 端点
+- **Python 包装器**:使用专门的 Python 包装器进行 LLM 交互,确保接口统一和易于管理。
+- **API 端点**:通过清晰定义的 API 端点连接前端与 Python 后端,实现前后端数据传输和功能调用。
+- **异步处理**:LLM 调用通常耗时较长,应采用异步处理机制,避免阻塞主线程。
+- **错误处理与重试**:实现健壮的错误处理和重试机制,应对 LLM 服务可能出现的临时故障。
+- **安全性**:确保 LLM 交互过程中的数据安全,例如敏感信息加密、API 密钥管理等。
+- **性能优化**:对 LLM 请求和响应进行优化,例如批量请求、数据压缩等,提升整体性能。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---complex-state-management.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---complex-state-management.mdc
index a2b6bbc..5ef80a5 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---complex-state-management.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---complex-state-management.mdc
@@ -1,8 +1,159 @@
---
-description:
-globs:
+description: SolidJS 复杂状态管理
+globs: []
alwaysApply: false
---
+# SolidJS 复杂状态管理
+本规则集定义了在 SolidJS 应用程序中处理复杂状态管理的策略和最佳实践,旨在确保状态的可预测性、可维护性和高性能。
+## 1. 状态管理核心概念
+
+SolidJS 的核心是其细粒度响应系统,这使得状态管理相对直接。对于复杂场景,可以结合使用以下模式:
+
+- **信号 (Signals)**: SolidJS 的基本响应式原语,用于存储和更新状态。
+- **派生状态 (Derived State)**: 通过 `createMemo` 从现有信号计算出的值,只有当其依赖项改变时才重新计算。
+- **存储 (Stores)**: 用于管理复杂对象或嵌套状态,通常通过 `createStore` 创建。
+
+## 2. 组织复杂状态
+
+### 2.1 模块化状态
+
+将相关状态和操作封装在独立的模块或文件中,提高代码组织性。
+
+```javascript
+// stores/auth.js
+import { createSignal } from 'solid-js';
+
+const [user, setUser] = createSignal(null);
+const [isAuthenticated, setIsAuthenticated] = createSignal(false);
+
+export const authStore = {
+ user,
+ isAuthenticated,
+ login: (userData) => {
+ setUser(userData);
+ setIsAuthenticated(true);
+ },
+ logout: () => {
+ setUser(null);
+ setIsAuthenticated(false);
+ },
+};
+```
+
+### 2.2 扁平化嵌套状态 (使用 `createStore`)
+
+对于嵌套对象或数组,`createStore` 可以提供细粒度的更新,避免不必要的重新渲染。
+
+```javascript
+import { createStore } from 'solid-js/store';
+
+const [state, setState] = createStore({
+ user: { name: 'John', age: 30 },
+ settings: { theme: 'dark', notifications: true },
+ items: [{ id: 1, name: 'Item A' }, { id: 2, name: 'Item B' }],
+});
+
+// 更新嵌套属性
+setState('user', 'age', a => a + 1);
+// 更新数组中的元素
+setState('items', item => item.id === 1, 'name', 'Updated Item A');
+```
+
+## 3. 跨组件状态共享
+
+### 3.1 Context API
+
+对于需要跨多层组件共享的状态,使用 SolidJS 的 Context API 是一个推荐的方式。
+
+```javascript
+// contexts/ThemeContext.jsx
+import { createContext, useContext } from 'solid-js';
+import { createSignal } from 'solid-js';
+
+const ThemeContext = createContext();
+
+export function ThemeProvider(props) {
+ const [theme, setTheme] = createSignal('light');
+ const toggleTheme = () => setTheme(t => (t === 'light' ? 'dark' : 'light'));
+
+ return (
+
+ {props.children}
+
+ );
+}
+
+export function useTheme() {
+ return useContext(ThemeContext);
+}
+
+// Usage in a component:
+// import { useTheme } from '../contexts/ThemeContext';
+// const { theme, toggleTheme } = useTheme();
+```
+
+### 3.2 全局存储 (Global Stores)
+
+对于应用程序级别的全局状态,可以直接从模块导出信号或存储,并在任何需要的地方导入使用。这适用于不需要 Context API 提供的层级结构的场景。
+
+```javascript
+// stores/globalCounter.js
+import { createSignal } from 'solid-js';
+
+export const [count, setCount] = createSignal(0);
+
+// components/MyComponent.jsx
+import { count, setCount } from '../stores/globalCounter';
+
+function MyComponent() {
+ return (
+
+
Count: {count()}
+
+
+ );
+}
+```
+
+## 4. 异步状态管理
+
+对于异步数据,可以使用 `createResource` 或结合 `createSignal` 和 `createEffect` 来管理加载状态、错误和数据。
+
+```javascript
+import { createResource, createSignal, onMount } from 'solid-js';
+
+async function fetchUser(id) {
+ const response = await fetch(`/api/users/${id}`);
+ return response.json();
+}
+
+function UserProfile(props) {
+ const [userId, setUserId] = createSignal(props.id);
+ const [user] = createResource(userId, fetchUser);
+
+ return (
+
+
+ Loading user...
+
+
+ Error: {user.error.message}
+
+
+ User Name: {user().name}
+
+
+ );
+}
+```
+
+## 5. 最佳实践
+
+- **最小化状态**: 仅将真正需要响应式更新的数据存储为信号或存储。
+- **避免不必要的响应性**: 对于不需要响应式的数据,使用普通变量。
+- **单一职责原则**: 确保每个信号或存储管理一个单一的、内聚的状态片段。
+- **使用 `createMemo` 优化派生状态**: 避免在模板中直接进行复杂计算,使用 `createMemo` 缓存计算结果。
+- **清晰的命名**: 信号和存储的命名应清晰地反映其内容和用途。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---conditional-and-list-rendering.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---conditional-and-list-rendering.mdc
index a2b6bbc..a0ee0cc 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---conditional-and-list-rendering.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---conditional-and-list-rendering.mdc
@@ -1,8 +1,146 @@
---
-description:
-globs:
+description: SolidJS 条件渲染和列表渲染
+globs: []
alwaysApply: false
---
+# SolidJS 条件渲染和列表渲染
+本规则集定义了在 SolidJS 应用程序中实现条件渲染和列表渲染的最佳实践,旨在确保高效的 UI 更新和可读的代码结构。
+## 1. 条件渲染
+
+SolidJS 处理条件渲染的方式与 React 等其他库有所不同,它利用其细粒度响应式系统,只更新实际改变的部分。
+
+### 1.1 使用 `Show` 组件
+
+对于简单的条件渲染,可以使用 SolidJS 内置的 `Show` 组件。它接受一个 `when` 属性(一个信号或计算属性),当 `when` 为真时渲染其 `children`,否则渲染 `fallback`。
+
+```jsx
+import { createSignal, Show } from 'solid-js';
+
+function ConditionalDisplay() {
+ const [loggedIn, setLoggedIn] = createSignal(false);
+
+ return (
+
+
setLoggedIn(true)}>Login}
+ >
+ Welcome, User!
+
+
+
+ );
+}
+```
+
+### 1.2 使用 `Switch` 和 `Match` 组件
+
+对于多个条件的复杂场景,可以使用 `Switch` 和 `Match` 组件,类似于其他语言中的 `switch` 语句。
+
+```jsx
+import { createSignal, Switch, Match } from 'solid-js';
+
+function MultiConditionalDisplay() {
+ const [status, setStatus] = createSignal('loading');
+
+ return (
+
+
Unknown Status}>
+
+ Loading data...
+
+
+ Data loaded successfully!
+
+
+ Error loading data.
+
+
+
+
+
+
+ );
+}
+```
+
+### 1.3 短路逻辑 (不推荐用于复杂场景)
+
+虽然可以使用 `&&` 或 `||` 进行短路逻辑渲染,但对于更复杂的条件,推荐使用 `Show` 或 `Switch/Match`,因为它们能更好地利用 SolidJS 的响应式特性,避免不必要的重新创建 DOM 元素。
+
+```jsx
+// 简单场景可用,复杂场景不推荐
+function SimpleConditional() {
+ const [isVisible, setIsVisible] = createSignal(true);
+ return (
+
+ {isVisible() &&
This is visible.
}
+
+
+ );
+}
+```
+
+## 2. 列表渲染
+
+SolidJS 的列表渲染通过 `For` 组件实现,它提供了高效的键控 (keyed) 列表渲染,类似于 React 的 `map` 结合 `key`。
+
+### 2.1 使用 `For` 组件
+
+`For` 组件接受一个 `each` 属性(一个数组信号或计算属性),并为数组中的每个项渲染其 `children`。`key` 属性是可选的,但强烈推荐提供一个稳定且唯一的 `key`,以优化列表更新性能。
+
+```jsx
+import { createSignal, For } from 'solid-js';
+
+function TodoList() {
+ const [todos, setTodos] = createSignal([
+ { id: 1, text: 'Learn SolidJS', completed: false },
+ { id: 2, text: 'Build an App', completed: false },
+ ]);
+
+ const addTodo = () => {
+ const newTodo = { id: todos().length + 1, text: 'New Todo', completed: false };
+ setTodos([...todos(), newTodo]);
+ };
+
+ return (
+
+
+
+ No todos yet!}>
+ {(todo, i) => (
+ -
+ {todo.text} - {todo.completed ? 'Done' : 'Pending'}
+
+ )}
+
+
+
+ );
+}
+```
+
+### 2.2 键控列表 (Keyed Lists)
+
+`For` 组件默认使用索引作为 `key`,但这在列表项顺序改变或有增删时会导致性能问题和不正确的行为。因此,始终为 `For` 组件提供一个稳定的、唯一的 `key`。
+
+```jsx
+// 推荐使用唯一的 ID 作为 key
+No todos yet!}>
+ {(todo) => {todo.text}}
+
+```
+
+### 2.3 避免在 `For` 循环中创建信号
+
+在 `For` 循环内部直接创建信号会导致性能问题,因为每次列表更新时都会重新创建信号。如果需要响应式地处理列表项的内部状态,应将列表项封装到独立的组件中,并在该组件内部管理其状态。
+
+## 3. 最佳实践
+
+- **优先使用内置组件**: 对于条件渲染和列表渲染,优先使用 SolidJS 提供的 `Show`、`Switch/Match` 和 `For` 组件。
+- **提供唯一的 `key`**: 在 `For` 组件中始终提供一个稳定的、唯一的 `key`。
+- **避免短路逻辑的滥用**: 避免在复杂场景下使用 `&&` 或 `||` 进行条件渲染。
+- **封装列表项**: 如果列表项有自己的内部状态或复杂逻辑,将其封装到独立的组件中。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---data-fetching.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---data-fetching.mdc
index a2b6bbc..b26ff02 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---data-fetching.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---data-fetching.mdc
@@ -1,8 +1,148 @@
---
-description:
-globs:
+description: SolidJS 数据获取
+globs: []
alwaysApply: false
---
+# SolidJS 数据获取
+本规则集定义了在 SolidJS 应用程序中进行数据获取的策略和最佳实践,旨在确保高效、响应式和可维护的数据流。
+## 1. 使用 `createResource` (推荐)
+
+`createResource` 是 SolidJS 提供的一个强大且声明式的数据获取原语。它能够自动处理加载状态、错误以及数据的缓存和重新获取,非常适合异步数据源。
+
+```javascript
+import { createResource, createSignal, Show } from 'solid-js';
+
+// 模拟一个异步数据获取函数
+async function fetchUser(userId) {
+ if (!userId) return undefined; // 当 userId 为 undefined 时不执行请求
+ console.log(`Fetching user ${userId}...`);
+ const response = await new Promise(resolve => setTimeout(() => {
+ resolve({ id: userId, name: `User ${userId}`, email: `user${userId}@example.com` });
+ }, 1000));
+ return response;
+}
+
+function UserProfile(props) {
+ const [userId, setUserId] = createSignal(props.initialUserId);
+ // createResource 的第一个参数是源信号,当它改变时会触发重新获取
+ // 第二个参数是数据获取函数
+ const [user] = createResource(userId, fetchUser);
+
+ return (
+
+
User Profile
+
setUserId(parseInt(e.target.value) || undefined)}
+ placeholder="Enter User ID"
+ />
+
+ Loading user data...
+
+
+ Error: {user.error.message}
+
+
+ ID: {user().id}
+ Name: {user().name}
+ Email: {user().email}
+
+
+ Please enter a User ID to fetch data.
+
+
+ );
+}
+```
+
+### `createResource` 的优势
+
+- **自动加载状态**: `resource.loading` 信号自动指示数据是否正在加载。
+- **自动错误处理**: `resource.error` 信号捕获数据获取过程中的错误。
+- **缓存**: `createResource` 会缓存结果,避免重复请求相同的数据。
+- **响应式触发**: 当源信号改变时,自动重新执行数据获取函数。
+- **暂停/恢复**: 可以通过将源信号设置为 `undefined` 或 `null` 来暂停数据获取。
+
+## 2. 使用 `createEffect` 进行手动数据获取
+
+对于更复杂的场景,或者当 `createResource` 不完全满足需求时,可以使用 `createEffect` 结合 `createSignal` 手动管理数据获取的生命周期。
+
+```javascript
+import { createSignal, createEffect, onCleanup, Show } from 'solid-js';
+
+function ManualDataFetcher(props) {
+ const [data, setData] = createSignal(null);
+ const [loading, setLoading] = createSignal(false);
+ const [error, setError] = createSignal(null);
+
+ createEffect(() => {
+ const id = props.itemId;
+ if (!id) return; // 如果没有 ID,则不执行获取
+
+ setLoading(true);
+ setError(null);
+ setData(null);
+
+ const abortController = new AbortController();
+ const signal = abortController.signal;
+
+ fetch(`/api/items/${id}`, { signal })
+ .then(response => {
+ if (!response.ok) {
+ throw new Error(`HTTP error! status: ${response.status}`);
+ }
+ return response.json();
+ })
+ .then(fetchedData => {
+ setData(fetchedData);
+ })
+ .catch(err => {
+ if (err.name !== 'AbortError') {
+ setError(err);
+ }
+ })
+ .finally(() => {
+ setLoading(false);
+ });
+
+ // 清理函数,当 effect 重新运行时或组件卸载时执行
+ onCleanup(() => {
+ abortController.abort(); // 取消正在进行的请求
+ });
+ });
+
+ return (
+
+
Manual Data Fetcher
+
+ Loading item...
+
+
+ Error: {error().message}
+
+
+ Item Name: {data().name}
+ Description: {data().description}
+
+
+ );
+}
+```
+
+### 适用场景
+
+- 需要更精细控制请求生命周期(如取消请求)时。
+- 数据获取逻辑非常复杂,需要自定义处理流程时。
+
+## 3. 最佳实践
+
+- **优先使用 `createResource`**: 它是 SolidJS 官方推荐的数据获取方式,能处理大多数场景,并提供开箱即用的加载/错误状态管理。
+- **处理加载和错误状态**: 始终在 UI 中反映数据的加载状态和任何可能发生的错误,提供良好的用户体验。
+- **数据源信号化**: 将触发数据获取的参数(如 ID、查询字符串)封装为信号,以便 `createResource` 能够响应式地重新获取数据。
+- **避免在模板中直接进行数据获取**: 数据获取逻辑应封装在组件外部的函数或 `createResource`/`createEffect` 中。
+- **取消未完成的请求**: 在组件卸载或数据源信号改变时,取消之前未完成的请求,避免内存泄漏和不必要的网络活动。
+- **服务端渲染 (SSR) 考虑**: 如果使用 SSR,`createResource` 也能很好地工作,因为它支持在服务器端预取数据。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---derived-values-management.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---derived-values-management.mdc
index a2b6bbc..708ef2c 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---derived-values-management.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---derived-values-management.mdc
@@ -1,8 +1,111 @@
---
-description:
-globs:
+description: SolidJS 派生值管理
+globs: []
alwaysApply: false
---
+# SolidJS 派生值管理
+本规则集定义了在 SolidJS 应用程序中如何高效地管理派生值(Derived Values),旨在确保计算的最小化、响应式更新的精确性以及代码的清晰度。
+## 1. 什么是派生值?
+
+派生值是指那些不是直接存储在信号中,而是通过其他响应式数据(如信号、存储、其他派生值)计算得出的值。当其依赖的响应式数据发生变化时,派生值会自动重新计算。
+
+## 2. 使用 `createMemo` (推荐)
+
+`createMemo` 是 SolidJS 中用于创建派生值的核心原语。它类似于 React 的 `useMemo` 或 Vue 的计算属性,但 SolidJS 的 `createMemo` 具有更细粒度的响应式更新,只有当其依赖项实际发生变化时才会重新计算。
+
+```javascript
+import { createSignal, createMemo } from 'solid-js';
+
+function Counter() {
+ const [count, setCount] = createSignal(0);
+ const [multiplier, setMultiplier] = createSignal(2);
+
+ // 派生值:计算 count * multiplier
+ const multipliedCount = createMemo(() => count() * multiplier());
+
+ return (
+
+
Count: {count()}
+
Multiplier: {multiplier()}
+
Multiplied Count: {multipliedCount()}
+
+
+
+ );
+}
+```
+
+### `createMemo` 的优势
+
+- **惰性计算**: `createMemo` 只有当其值被读取时才会执行计算函数。
+- **缓存结果**: 只有当依赖项发生变化时,`createMemo` 才会重新计算其值,否则返回缓存的结果,避免不必要的重复计算。
+- **细粒度更新**: SolidJS 的编译器会优化 `createMemo` 的依赖追踪,确保只有真正需要更新的视图部分才会重新渲染。
+
+## 3. 避免在 JSX 中直接进行复杂计算
+
+虽然可以在 JSX 模板中直接进行简单的计算,但对于复杂的计算或需要缓存结果的计算,应始终使用 `createMemo`。在 JSX 中直接进行复杂计算会导致每次组件重新渲染时都重复执行,降低性能。
+
+```javascript
+// 不推荐:在 JSX 中直接进行复杂计算
+function BadExample() {
+ const [items, setItems] = createSignal([{ price: 10, quantity: 2 }, { price: 5, quantity: 3 }]);
+
+ return (
+
+
Total: {items().reduce((sum, item) => sum + item.price * item.quantity, 0)}
+
+ );
+}
+
+// 推荐:使用 createMemo 计算派生值
+function GoodExample() {
+ const [items, setItems] = createSignal([{ price: 10, quantity: 2 }, { price: 5, quantity: 3 }]);
+
+ const total = createMemo(() => items().reduce((sum, item) => sum + item.price * item.quantity, 0));
+
+ return (
+
+ );
+}
+```
+
+## 4. 派生值与副作用 (Effects)
+
+`createMemo` 用于计算值,而 `createEffect` 用于执行副作用(如 DOM 操作、日志记录、订阅外部服务)。不要在 `createMemo` 中执行副作用,也不要依赖于 `createEffect` 的返回值。
+
+```javascript
+import { createSignal, createMemo, createEffect } from 'solid-js';
+
+function SideEffectExample() {
+ const [firstName, setFirstName] = createSignal("John");
+ const [lastName, setLastName] = createSignal("Doe");
+
+ // 派生值:全名
+ const fullName = createMemo(() => `${firstName()} ${lastName()}`);
+
+ // 副作用:当 fullName 改变时打印日志
+ createEffect(() => {
+ console.log(`Full Name changed to: ${fullName()}`);
+ });
+
+ return (
+
+ );
+}
+```
+
+## 5. 最佳实践
+
+- **始终使用 `createMemo`**: 对于任何从现有响应式数据计算得出的值,都应该使用 `createMemo` 来创建,以确保性能和正确性。
+- **避免循环依赖**: 确保 `createMemo` 的计算函数不会直接或间接依赖于其自身的值,这会导致无限循环。
+- **清晰的命名**: 派生值的命名应清晰地反映其计算逻辑和用途。
+- **分离计算与副作用**: 严格区分 `createMemo`(计算值)和 `createEffect`(执行副作用)的职责。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---error-boundaries.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---error-boundaries.mdc
index a2b6bbc..037212a 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---error-boundaries.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---error-boundaries.mdc
@@ -1,8 +1,97 @@
---
-description:
-globs:
+description: SolidJS 错误边界
+globs: []
alwaysApply: false
---
+# SolidJS 错误边界
+本规则集定义了在 SolidJS 应用程序中如何实现错误边界(Error Boundaries),以优雅地捕获组件树中的 JavaScript 错误,并显示备用 UI,而不是导致整个应用程序崩溃。
+## 1. 什么是错误边界?
+
+错误边界是一种 SolidJS 组件,它可以捕获其子组件树中任何位置的 JavaScript 错误,记录这些错误,并显示一个备用 UI,而不是崩溃整个组件树。错误边界在渲染期间、生命周期方法中以及构造函数中捕获错误。
+
+## 2. SolidJS 中的错误边界
+
+SolidJS 本身没有像 React 那样内置的 `componentDidCatch` 或 `getDerivedStateFromError` 生命周期方法。然而,可以通过 `createEffect` 和 `onError` 回调函数来模拟错误边界的行为。
+
+### 2.1 使用 `onError` 回调
+
+`onError` 是 SolidJS 提供的一个回调函数,它可以在组件内部或组件树的任何地方捕获渲染或更新过程中的错误。当错误发生时,`onError` 会被调用,并且可以用来更新本地状态以显示回退 UI。
+
+```javascript
+import { createSignal, onError, Show } from 'solid-js';
+
+function ErrorBoundary(props) {
+ const [error, setError] = createSignal(null);
+
+ // 捕获子组件树中的错误
+ onError((err) => {
+ console.error("Caught an error:", err);
+ setError(err);
+ });
+
+ return (
+
+ Something went wrong.
+ Error details: {error()?.message}
+
+
+ }
+ >
+ {props.children}
+
+ );
+}
+
+function BuggyComponent() {
+ const [count, setCount] = createSignal(0);
+
+ const handleClick = () => {
+ setCount(c => c + 1);
+ if (count() === 2) {
+ throw new Error("I crashed at count 2!");
+ }
+ };
+
+ return (
+
+
Count: {count()}
+
+
+ );
+}
+
+function App() {
+ return (
+
+
My App
+
+
+
+
This part of the app is still working.
+
+ );
+}
+```
+
+### 2.2 错误边界的放置
+
+错误边界应该放置在您希望捕获错误并显示备用 UI 的组件树的任何位置。通常,您会将其放置在路由组件的顶层,或者在可能包含不稳定组件的 UI 部分周围。
+
+## 3. 最佳实践
+
+- **细化错误边界范围**: 不要将整个应用程序包裹在一个错误边界中。这会使得错误难以定位,并且可能隐藏其他部分的问题。将错误边界放置在逻辑上独立的 UI 块周围。
+- **提供有用的回退 UI**: 当错误发生时,显示一个清晰、友好的消息,告知用户发生了什么,并提供可能的解决方案(如“刷新页面”或“联系支持”)。
+- **记录错误**: 在错误边界中捕获到错误时,务必将其记录到日志服务(如 Sentry、Bugsnag)中,以便开发人员可以及时发现并修复问题。
+- **避免在错误边界内部抛出错误**: 错误边界本身不应该抛出错误,否则它将无法捕获自身的错误。
+- **测试错误边界**: 编写测试用例来验证错误边界是否按预期工作,包括它是否捕获错误、是否显示正确的备用 UI 以及是否正确记录错误。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---functional-components-preference.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---functional-components-preference.mdc
index a2b6bbc..6270f78 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---functional-components-preference.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---functional-components-preference.mdc
@@ -1,8 +1,91 @@
---
-description:
-globs:
+description: SolidJS 函数式组件偏好
+globs: []
alwaysApply: false
---
+# SolidJS 函数式组件偏好
+本规则集定义了在 SolidJS 应用程序中优先使用函数式组件的实践,旨在促进代码的简洁性、可重用性和响应式更新的效率。
+## 1. 函数式组件的核心
+
+在 SolidJS 中,组件本质上是普通的 JavaScript 函数,它们在渲染时只运行一次。响应式更新不是通过重新运行组件函数来实现的,而是通过 SolidJS 的细粒度响应式系统直接更新 DOM。
+
+```javascript
+// 这是一个简单的 SolidJS 函数式组件
+function MyComponent(props) {
+ return (
+
+ );
+}
+
+// 在其他组件中使用
+function App() {
+ return ;
+}
+```
+
+## 2. 为什么偏好函数式组件?
+
+- **性能优化**: SolidJS 的函数式组件只在初始化时执行一次,而不是像 React 那样在每次状态更新时重新渲染。这意味着更少的 JavaScript 执行,更高的性能。
+- **简洁性**: 代码更少,逻辑更直接,没有类组件中的 `this` 绑定问题或复杂的生命周期方法。
+- **响应式直观**: 响应式数据(信号、存储)可以直接在组件函数中使用,SolidJS 会自动追踪依赖并更新受影响的 DOM 部分。
+- **可重用性**: 函数式组件更容易被抽象和重用,因为它们只是纯函数,接受 `props` 并返回 JSX。
+
+## 3. 状态管理与副作用
+
+在函数式组件中,状态管理和副作用通过 SolidJS 提供的原语(如 `createSignal`, `createEffect`, `createMemo`, `createResource`)来处理。
+
+### 3.1 信号 (Signals)
+
+用于管理组件的局部状态。
+
+```javascript
+import { createSignal } from 'solid-js';
+
+function Counter() {
+ const [count, setCount] = createSignal(0);
+
+ return (
+
+
Count: {count()}
+
+
+ );
+}
+```
+
+### 3.2 副作用 (Effects)
+
+使用 `createEffect` 处理需要响应式地执行的副作用,例如日志记录、订阅外部数据等。
+
+```javascript
+import { createSignal, createEffect } from 'solid-js';
+
+function Logger() {
+ const [value, setValue] = createSignal("initial");
+
+ createEffect(() => {
+ console.log("Value changed:", value());
+ });
+
+ return (
+ setValue(e.target.value)}
+ />
+ );
+}
+```
+
+## 4. 最佳实践
+
+- **保持组件精简**: 尽量让函数式组件只负责渲染 UI,将复杂逻辑(如数据获取、状态管理)抽离到自定义 Hooks 或独立的模块中。
+- **使用 `props` 传递数据**: 通过 `props` 将数据从父组件传递给子组件。如果 `props` 是响应式的(例如,来自信号),SolidJS 会自动处理更新。
+- **避免在组件函数顶层执行昂贵操作**: 由于组件函数只运行一次,如果其中有昂贵的操作,它只会在组件挂载时执行。但如果操作依赖于响应式数据,请将其包裹在 `createMemo` 或 `createEffect` 中。
+- **利用 SolidJS 原语**: 充分利用 `createSignal`, `createEffect`, `createMemo`, `createResource` 等 SolidJS 提供的响应式原语来管理状态和逻辑。
+- **清晰的组件职责**: 每个函数式组件都应该有一个清晰的职责,避免一个组件承担过多的功能。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---jsx-templates.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---jsx-templates.mdc
index a2b6bbc..09adda2 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---jsx-templates.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---jsx-templates.mdc
@@ -1,8 +1,125 @@
---
-description:
-globs:
+description: SolidJS JSX 模板
+globs: []
alwaysApply: false
---
+# SolidJS JSX 模板
+本规则集定义了在 SolidJS 应用程序中使用 JSX 模板的策略和最佳实践,旨在确保代码的清晰度、可维护性以及与 SolidJS 响应式系统的无缝集成。
+## 1. JSX 基础
+
+SolidJS 使用 JSX 作为其模板语言,与 React 类似,但其内部工作方式有所不同。在 SolidJS 中,JSX 被编译为真实的 DOM 操作,而不是虚拟 DOM。这意味着 JSX 表达式只运行一次,而其中的响应式数据更新会直接、细粒度地反映到 DOM 上。
+
+```jsx
+import { createSignal } from 'solid-js';
+
+function Greeting() {
+ const [name, setName] = createSignal("World");
+
+ return (
+
+
Hello, {name()}!
+ setName(e.target.value)}
+ />
+
+ );
+}
+```
+
+## 2. 响应式表达式
+
+在 JSX 中,任何包含信号或计算属性的表达式都应该是函数调用形式(例如 `name()`),这样 SolidJS 才能追踪其依赖并在值变化时更新相应的 DOM 部分。
+
+```jsx
+// 正确:使用函数调用来访问信号的值
+Count: {count()}
+
+// 错误:直接访问信号,这将不会响应式更新
+// Count: {count}
+```
+
+## 3. 属性绑定
+
+### 3.1 静态属性
+
+静态属性直接写在 JSX 元素上。
+
+```jsx
+Static Content
+```
+
+### 3.2 动态属性
+
+动态属性使用花括号 `{}` 包裹 JavaScript 表达式。对于布尔属性,如果值为 `true`,属性会被添加;如果为 `false` 或 `null`,属性会被移除。
+
+```jsx
+
+
+```
+
+### 3.3 class 和 style
+
+- **`class`**: 可以是字符串、对象或数组。对象形式的键是类名,值是布尔值,用于条件性地添加类。
+
+ ```jsx
+
+ Dynamic Classes
+
+ ```
+
+- **`style`**: 可以是字符串或对象。对象形式的键是 CSS 属性名(驼峰命名),值是属性值。
+
+ ```jsx
+
+ Dynamic Styles
+
+ ```
+
+## 4. 条件渲染和列表渲染
+
+SolidJS 提供了专门的控制流组件 (`Show`, `Switch`, `For`) 来处理条件渲染和列表渲染,这些组件是优化性能和响应式更新的关键。
+
+### 4.1 条件渲染 (`Show`, `Switch/Match`)
+
+```jsx
+import { Show, Switch, Match } from 'solid-js';
+
+Welcome, {user().name}!
+
+Loading...}>
+ Data Loaded!
+ Error!
+
+```
+
+### 4.2 列表渲染 (`For`)
+
+```jsx
+import { For } from 'solid-js';
+
+
+ {(item) => {item.name}}
+
+```
+
+## 5. 事件处理
+
+事件处理与 React 类似,使用 `on` 前缀的驼峰命名属性,值为一个函数。
+
+```jsx
+
+ setValue(e.target.value)} />
+```
+
+## 6. 最佳实践
+
+- **保持 JSX 简洁**: JSX 应该主要用于描述 UI 结构,将复杂的逻辑(如数据转换、条件判断)移到组件函数或 `createMemo` 中。
+- **使用控制流组件**: 始终优先使用 SolidJS 提供的 `Show`, `Switch`, `For` 等控制流组件进行条件和列表渲染,而不是在 JSX 中使用 JavaScript 逻辑运算符。
+- **正确访问响应式值**: 确保所有响应式值(信号、存储、计算属性)在 JSX 中都以函数调用的形式访问。
+- **提供 `key` 属性**: 在列表渲染时,为 `For` 组件的子元素提供一个稳定且唯一的 `key` 属性,以优化性能。
+- **避免不必要的重新渲染**: SolidJS 已经非常优化,但仍需注意避免在 JSX 中创建不必要的响应式依赖或执行昂贵的操作。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---lazy-loading.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---lazy-loading.mdc
index a2b6bbc..008beca 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---lazy-loading.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---lazy-loading.mdc
@@ -1,8 +1,120 @@
---
-description:
-globs:
+description: SolidJS 懒加载
+globs: []
alwaysApply: false
---
+# SolidJS 懒加载
+本规则集定义了在 SolidJS 应用程序中实现组件和路由懒加载的策略和最佳实践,旨在优化应用程序的初始加载时间,提升用户体验。
+## 1. 什么是懒加载?
+
+懒加载(Lazy Loading),也称为代码分割(Code Splitting),是一种优化技术,它允许您只在需要时才加载应用程序的某些部分。这对于大型应用程序尤其有用,因为它可以显著减少初始加载时下载的 JavaScript 包大小。
+
+## 2. SolidJS 中的组件懒加载
+
+SolidJS 通过 `lazy` 函数和 `Suspense` 组件来支持组件的懒加载,这与 React 的 `React.lazy` 和 `Suspense` 类似。
+
+### 2.1 使用 `lazy` 函数
+
+`lazy` 函数接受一个返回 `Promise` 的函数,该 `Promise` 最终解析为一个 SolidJS 组件。通常,这个 `Promise` 会通过动态 `import()` 来实现。
+
+```javascript
+import { lazy } from 'solid-js';
+
+// 懒加载 MyLazyComponent
+const MyLazyComponent = lazy(() => import('./MyLazyComponent'));
+```
+
+### 2.2 使用 `Suspense` 组件
+
+`Suspense` 组件用于包裹懒加载的组件。当懒加载组件正在加载时,`Suspense` 会渲染其 `fallback` 属性提供的内容。一旦组件加载完成,`fallback` 内容就会被替换为实际组件。
+
+```jsx
+import { lazy, Suspense } from 'solid-js';
+
+const MyLazyComponent = lazy(() => import('./MyLazyComponent'));
+
+function App() {
+ return (
+
+
Welcome to My App
+ Loading MyLazyComponent...}>
+
+
+
+ );
+}
+```
+
+### 2.3 错误处理
+
+如果懒加载的组件加载失败(例如,网络错误),`Suspense` 不会捕获这个错误。您需要使用错误边界(Error Boundaries)来处理这类错误。
+
+## 3. Solid Router 中的路由懒加载
+
+当使用 Solid Router 进行路由管理时,也可以结合 `lazy` 和 `Suspense` 实现路由级别的代码分割。
+
+```jsx
+import { lazy, Suspense } from 'solid-js';
+import { useRoutes } from '@solidjs/router';
+
+// 懒加载路由组件
+const Home = lazy(() => import('./pages/Home'));
+const About = lazy(() => import('./pages/About'));
+const Contact = lazy(() => import('./pages/Contact'));
+
+const AppRoutes = () => {
+ const routes = useRoutes([
+ {
+ path: '/',
+ component: () => (
+ Loading Home...}>
+
+
+ ),
+ },
+ {
+ path: '/about',
+ component: () => (
+ Loading About...}>
+
+
+ ),
+ },
+ {
+ path: '/contact',
+ component: () => (
+ Loading Contact...}>
+
+
+ ),
+ },
+ ]);
+
+ return routes;
+};
+
+function App() {
+ return (
+ <>
+
+
+ >
+ );
+}
+```
+
+## 4. 最佳实践
+
+- **识别可懒加载的模块**: 通常,路由组件、大型库、不经常使用的功能模块是懒加载的理想候选者。
+- **提供有意义的 `fallback`**: 在组件加载期间,向用户显示有意义的加载指示器(例如,骨架屏、加载动画),而不是空白页面。
+- **结合错误边界**: 始终将懒加载的组件包裹在错误边界中,以优雅地处理加载失败的情况。
+- **避免过度分割**: 过度细粒度的代码分割可能会导致过多的网络请求,反而影响性能。找到一个平衡点。
+- **预加载 (Preloading)**: 对于用户可能很快会访问的路由或组件,可以考虑使用预加载技术,在空闲时间提前加载它们,进一步提升用户体验。
+- **SSR 兼容性**: 确保您的懒加载策略与服务端渲染 (SSR) 兼容,如果您的应用程序使用了 SSR。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---naming-conventions.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---naming-conventions.mdc
index a2b6bbc..c1f1bcd 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---naming-conventions.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---naming-conventions.mdc
@@ -1,8 +1,70 @@
---
-description:
-globs:
+description: SolidJS 命名约定
+globs: []
alwaysApply: false
---
+# SolidJS 命名约定
+本规则集定义了在 SolidJS 应用程序中推荐的命名约定,旨在提高代码的可读性、一致性和可维护性,使团队协作更加顺畅。
+## 1. 文件命名
+
+- **组件文件**: 使用 PascalCase(大驼峰命名法)命名组件文件,并以 `.jsx` 或 `.tsx` 扩展名结尾。
+ - 示例: `UserProfile.jsx`, `Button.tsx`
+- **Hooks/工具函数文件**: 使用 kebab-case(烤串命名法)或 snake_case(蛇形命名法)命名,并清晰地表明其用途。
+ - 示例: `use-auth.js`, `data_utils.ts`
+- **样式文件**: 与组件文件同名,并使用相应的样式扩展名(如 `.css`, `.module.css`, `.scss`)。
+ - 示例: `UserProfile.module.css`
+- **常量文件**: 使用 kebab-case 或 snake_case,通常放在 `constants` 目录下。
+ - 示例: `app-constants.js`, `api_endpoints.ts`
+
+## 2. 组件命名
+
+- **组件名称**: 始终使用 PascalCase(大驼峰命名法)。组件名称应该清晰、描述性强,并反映其功能。
+ - 示例: `Header`, `ProductCard`, `UserAvatar`
+- **避免通用名称**: 避免使用过于通用的名称,如 `Component`, `Item`,除非它们在特定上下文中非常明确。
+
+## 3. 信号 (Signals) 和存储 (Stores) 命名
+
+- **信号**: 使用 `createSignal` 创建的信号,通常使用 `[value, setValue]` 的解构形式。`value` 部分使用 camelCase(小驼峰命名法)。
+ - 示例: `const [count, setCount] = createSignal(0);`
+ - 对于布尔值,通常以 `is` 或 `has` 开头。
+ - 示例: `const [isLoading, setIsLoading] = createSignal(false);`
+- **存储**: 使用 `createStore` 创建的存储,通常使用 `[state, setState]` 的解构形式。`state` 部分使用 camelCase。
+ - 示例: `const [userStore, setUserStore] = createStore({});`
+- **派生值 (Memos)**: 使用 `createMemo` 创建的派生值,使用 camelCase。
+ - 示例: `const fullName = createMemo(() => `${firstName()} ${lastName()}`);`
+
+## 4. 函数和变量命名
+
+- **函数**: 使用 camelCase。函数名应该清晰地表明其执行的动作。
+ - 示例: `handleClick`, `fetchData`, `formatDate`
+- **事件处理函数**: 通常以 `handle` 开头,后跟事件名称。
+ - 示例: `onClick={handleClick}`, `onChange={handleChange}`
+- **布尔变量**: 通常以 `is`, `has`, `can` 等开头。
+ - 示例: `const isActive = true;`, `let hasError = false;`
+- **常量**: 使用 SCREAMING_SNAKE_CASE(全大写下划线命名法)。
+ - 示例: `const MAX_ITEMS = 10;`, `const API_URL = '/api';`
+- **循环变量**: 简短且具描述性。
+ - 示例: `item`, `idx`, `user`
+
+## 5. 属性 (Props) 命名
+
+- **属性名称**: 使用 camelCase。
+ - 示例: ``
+- **布尔属性**: 避免使用 `isLoggedIn={true}` 这样的冗余写法,直接使用 `isLoggedIn`。
+ - 示例: `` 而不是 ``
+
+## 6. CSS 类名命名 (可选)
+
+- **BEM (Block-Element-Modifier)**: 推荐使用 BEM 命名约定,以提高 CSS 的可读性和可维护性。
+ - 示例: `block-name__element-name--modifier-name`
+- **CSS Modules**: 如果使用 CSS Modules,可以利用其局部作用域的特性,但仍建议保持一致的命名风格。
+
+## 7. 最佳实践
+
+- **保持一致性**: 在整个项目中保持命名约定的一致性是至关重要的。
+- **清晰和描述性**: 名称应该足够清晰,能够传达其用途和含义,避免使用缩写或模糊的名称。
+- **避免冲突**: 确保命名不会与 JavaScript 关键字、DOM 属性或 SolidJS 内部名称冲突。
+- **团队约定**: 如果是团队项目,确保所有团队成员都遵循相同的命名约定,可以通过 ESLint 规则或代码审查来强制执行。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---optimization-features.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---optimization-features.mdc
index a2b6bbc..a875dd6 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---optimization-features.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---optimization-features.mdc
@@ -1,8 +1,117 @@
---
-description:
-globs:
+description: SolidJS 优化特性
+globs: []
alwaysApply: false
---
+# SolidJS 优化特性
+本规则集介绍了 SolidJS 的核心优化特性,并提供了如何利用这些特性来构建高性能、响应迅速的应用程序的指南。
+SolidJS 的设计理念是最大限度地减少运行时开销,通过编译时优化和细粒度响应式系统,实现接近原生 JavaScript 的性能。
+
+## 1. 细粒度响应式系统
+
+SolidJS 的核心优势在于其细粒度的响应式系统。它不使用虚拟 DOM,而是直接将响应式数据与实际 DOM 节点绑定。这意味着只有当数据发生变化时,相关的 DOM 部分才会被更新,而不是整个组件树。
+
+### 1.1 信号 (Signals)
+
+信号是 SolidJS 响应式系统的基本单元。它们是可观察的值,当它们改变时,会自动通知所有依赖它们的计算和副作用。
+
+```javascript
+import { createSignal } from 'solid-js';
+
+const [count, setCount] = createSignal(0);
+// 只有 count() 改变时, 标签的文本内容才会更新
+
Count: {count()}
+```
+
+### 1.2 备忘录 (Memos) / 派生值 (`createMemo`)
+
+`createMemo` 用于创建派生值。它会缓存计算结果,只有当其依赖的信号发生变化时,才会重新计算。这避免了不必要的重复计算。
+
+```javascript
+import { createSignal, createMemo } from 'solid-js';
+
+const [firstName, setFirstName] = createSignal("John");
+const [lastName, setLastName] = createSignal("Doe");
+
+// fullName 只有当 firstName 或 lastName 改变时才会重新计算
+const fullName = createMemo(() => `${firstName()} ${lastName()}`);
+
+Full Name: {fullName()}
+```
+
+### 1.3 副作用 (`createEffect`)
+
+`createEffect` 用于执行副作用,例如 DOM 操作、日志记录或与外部 API 交互。它只在依赖的信号改变时运行,并且会自动清理旧的副作用。
+
+```javascript
+import { createSignal, createEffect } from 'solid-js';
+
+const [data, setData] = createSignal(null);
+
+createEffect(() => {
+ if (data()) {
+ console.log("Data has changed:", data());
+ }
+});
+```
+
+## 2. 编译时优化
+
+SolidJS 的 JSX 编译器将 JSX 模板编译成高效的、直接操作 DOM 的 JavaScript 代码。这意味着运行时没有虚拟 DOM 比较的开销。
+
+- **只运行一次的组件**: SolidJS 组件函数只在初始化时运行一次,而不是像 React 那样在每次状态更新时重新运行。这大大减少了 JavaScript 的执行量。
+- **模板实例化**: JSX 编译后会生成高效的 DOM 节点创建和更新代码,避免了运行时解析模板的开销。
+
+## 3. 控制流组件
+
+SolidJS 提供了特殊的控制流组件(如 `Show`, `For`, `Switch`)来优化条件渲染和列表渲染。
+
+### 3.1 `Show` 组件
+
+`Show` 组件用于条件渲染。它只会渲染 `when` 条件为真时的内容,并且在条件切换时,会高效地添加或移除 DOM 元素,而不是重新渲染整个子树。
+
+```jsx
+import { Show } from 'solid-js';
+
+}>
+
+
+```
+
+### 3.2 `For` 组件
+
+`For` 组件用于高效地渲染列表。它通过键控 (keyed) 算法来最小化 DOM 操作,只更新实际改变的列表项。
+
+```jsx
+import { For } from 'solid-js';
+
+No items}>
+ {(item) => {item.name}}
+
+```
+
+## 4. 懒加载和代码分割
+
+SolidJS 支持通过 `lazy` 函数和 `Suspense` 组件进行组件和路由的懒加载,从而减少初始加载的包大小,提高应用程序的启动速度。
+
+```javascript
+import { lazy, Suspense } from 'solid-js';
+
+const MyLazyComponent = lazy(() => import('./MyLazyComponent'));
+
+Loading...}>
+
+
+```
+
+## 5. 最佳实践
+
+- **拥抱响应式原语**: 充分利用 `createSignal`, `createMemo`, `createEffect` 等核心原语来管理状态和逻辑。
+- **使用控制流组件**: 优先使用 SolidJS 提供的 `Show`, `For`, `Switch` 组件进行条件和列表渲染。
+- **避免不必要的响应性**: 只有需要响应式更新的数据才使用信号。对于静态数据,使用普通变量。
+- **合理使用 `createMemo`**: 将复杂的计算逻辑封装在 `createMemo` 中,以缓存结果并避免重复计算。
+- **代码分割**: 对于大型应用程序,合理地进行代码分割和懒加载,以优化初始加载性能。
+- **SSR/SSG**: 考虑使用服务端渲染 (SSR) 或静态站点生成 (SSG) 来进一步提高首次加载性能和 SEO。
diff --git a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---reactive-state-management.mdc b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---reactive-state-management.mdc
index a2b6bbc..f7da232 100644
--- a/rules/frontend/solidjs/solidjs-basic-guide/solidjs---reactive-state-management.mdc
+++ b/rules/frontend/solidjs/solidjs-basic-guide/solidjs---reactive-state-management.mdc
@@ -1,8 +1,97 @@
---
-description:
-globs:
+description: SolidJS 响应式状态管理
+globs: []
alwaysApply: false
---
+# SolidJS 响应式状态管理
+本规则集定义了在 SolidJS 应用程序中进行响应式状态管理的核心概念和最佳实践,旨在帮助开发者构建高效、可维护且响应迅速的用户界面。
+SolidJS 的响应式系统是其最强大的特性之一,它允许开发者以细粒度的方式追踪状态变化,并只更新 DOM 中受影响的部分,从而实现卓越的性能。
+
+## 1. 核心原语
+
+SolidJS 的响应式系统基于三个核心原语:信号(Signals)、备忘录(Memos)和副作用(Effects)。
+
+### 1.1 信号 (Signals)
+
+信号是响应式状态的基本单元。它们是可读写的、可观察的值。当信号的值发生变化时,所有依赖于该信号的备忘录和副作用都会自动重新运行。
+
+- **创建信号**: 使用 `createSignal` 函数。
+ ```javascript
+ import { createSignal } from 'solid-js';
+
+ const [count, setCount] = createSignal(0); // count 是读取器,setCount 是写入器
+ console.log(count()); // 读取当前值
+ setCount(5); // 更新值
+ ```
+- **命名约定**: 通常使用 `[value, setValue]` 的解构形式,`value` 部分使用 camelCase。
+
+### 1.2 备忘录 (Memos) / 派生值 (`createMemo`)
+
+备忘录用于创建派生状态,即从一个或多个信号计算得出的值。`createMemo` 会缓存其结果,并且只有当其依赖的信号发生变化时才会重新计算。
+
+- **创建备忘录**: 使用 `createMemo` 函数。
+ ```javascript
+ import { createSignal, createMemo } from 'solid-js';
+
+ const [firstName, setFirstName] = createSignal("John");
+ const [lastName, setLastName] = createSignal("Doe");
+
+ // fullName 只有当 firstName 或 lastName 改变时才会重新计算
+ const fullName = createMemo(() => `${firstName()} ${lastName()}`);
+ console.log(fullName());
+ ```
+- **优化**: `createMemo` 是性能优化的关键,它避免了不必要的重复计算。
+
+### 1.3 副作用 (Effects) (`createEffect`)
+
+副作用用于执行那些不直接返回值的操作,例如更新 DOM、打印日志、订阅外部数据或执行网络请求。`createEffect` 会在其依赖的信号发生变化时自动重新运行。
+
+- **创建副作用**: 使用 `createEffect` 函数。
+ ```javascript
+ import { createSignal, createEffect } from 'solid-js';
+
+ const [count, setCount] = createSignal(0);
+
+ createEffect(() => {
+ console.log("Count is now:", count()); // 每次 count 改变时都会打印
+ });
+
+ setCount(1);
+ setCount(2);
+ ```
+- **清理**: `createEffect` 可以返回一个清理函数,当 effect 重新运行或组件卸载时,该函数会被调用。
+
+## 2. 存储 (Stores) (`createStore`)
+
+对于管理复杂对象或嵌套状态,SolidJS 提供了 `createStore`。它允许对对象或数组进行细粒度的响应式更新,而无需重新创建整个对象。
+
+- **创建存储**: 使用 `createStore` 函数。
+ ```javascript
+ import { createStore } from 'solid-js/store';
+
+ const [user, setUser] = createStore({
+ id: 1,
+ name: "Alice",
+ address: { street: "123 Main St", city: "Anytown" },
+ hobbies: ["reading", "hiking"]
+ });
+
+ // 更新嵌套属性
+ setUser("address", "city", "Newtown");
+ // 更新数组元素
+ setUser("hobbies", (hobbies) => [...hobbies, "cooking"]);
+ ```
+- **细粒度更新**: `createStore` 确保只有被修改的部分才会触发更新,而不是整个对象。
+
+## 3. 最佳实践
+
+- **最小化状态**: 仅将真正需要响应式更新的数据存储为信号或存储。对于不需要响应式的数据,使用普通变量。
+- **单一职责原则**: 确保每个信号或存储管理一个单一的、内聚的状态片段。
+- **优先使用 `createMemo`**: 对于任何从现有响应式数据计算得出的值,都应该使用 `createMemo` 来创建,以确保性能和正确性。
+- **区分计算与副作用**: 严格区分 `createMemo`(计算值)和 `createEffect`(执行副作用)的职责。
+- **避免在 JSX 中直接进行复杂计算**: 将复杂计算逻辑移到 `createMemo` 中,然后在 JSX 中引用其值。
+- **合理组织状态**: 对于大型应用程序,考虑将相关状态和逻辑组织到自定义 Hooks 或独立的模块中。
+- **处理异步状态**: 使用 `createResource` 来处理异步数据获取,它能自动管理加载和错误状态。
diff --git a/rules/general/moyu-anti-over-engineering/.cursorrules b/rules/general/moyu-anti-over-engineering/.cursorrules
new file mode 100644
index 0000000..ec39659
--- /dev/null
+++ b/rules/general/moyu-anti-over-engineering/.cursorrules
@@ -0,0 +1,55 @@
+# 摸鱼 (Moyu)
+
+> 最好的代码是你没写的代码。最好的 PR 是最小的 PR。
+
+## 你的身份
+
+你是一个深谙"少即是多"的 Staff 级工程师。克制是一种能力,不是偷懒。写 10 行精准的代码比写 100 行"完整"的代码需要更多功力。你绝不内卷。你高效克制——这样用户才能真正摸鱼。
+
+## 三条铁律
+
+1. **只改被要求改的代码** — 修改范围严格限定在用户明确指定的代码和文件内。想改其他代码时,先列出来等用户确认。
+2. **最简方案优先** — 一行能解决的写一行。现有代码能复用就复用。不需要新文件就不创建。不需要新依赖就用内建功能。
+3. **不确定就问** — 不确定改动范围、需要改其他文件、需要引入依赖、想重构现有代码时,停下来问用户。用户没说要的就是不需要的。
+
+## 内卷 vs 摸鱼
+
+| 内卷 (Junior) | 摸鱼 (Senior) |
+|---|---|
+| 修 bug A 顺手"优化"了 B、C、D | 只修 bug A |
+| 改一行重写整个文件 | 只改那一行 |
+| 一个实现搞出 interface + factory + strategy | 直接写实现 |
+| 每个函数包 try-catch | 只在真正会出错的地方处理 |
+| `counter++` 上写 `// increment counter` | 代码本身就是文档 |
+| 引入 lodash 做一个 `_.get()` | 用可选链 `?.` |
+| 直接给最复杂的方案 | 先说几个方案,默认最简的 |
+| 没人要求就写一整套测试 | 用户没要求就不写 |
+
+## 摸鱼检查清单
+
+每次交付前过一遍:
+
+- 我只修改了用户明确要求的代码吗?
+- 有没有更少代码的方案?
+- 我添加的每一行删掉后功能会中断吗?
+- 我动了用户没提到的文件吗?
+- 我加了没人要求的注释/文档/测试/配置吗?
+- 我的 diff 能在 30 秒内 review 完吗?
+
+## 反内卷
+
+| 冲动 | 摸鱼智慧 |
+|---|---|
+| "这个函数名不好,我改一下" | 不是你的任务 |
+| "加个 try-catch 以防万一" | 这个异常会发生吗?不会就不加 |
+| "提取成工具函数" | 只调用一次,内联更好 |
+| "用户可能还想要这个" | 没说要就是不要 |
+| "代码不够优雅,重写一下" | 能用比优雅更重要 |
+| "加个接口以备扩展" | YAGNI |
+| "顺便 DRY 一下" | 两三处相似比过早抽象更好维护 |
+
+## 与 PUA 搭配
+
+PUA 治偷懒(AI 做太少),摸鱼治加戏(AI 做太多)。两个同时装效果最佳。
+
+用户明确要求时("加完整错误处理"、"重构这个模块"、"加测试"),放心去做。摸鱼的核心是**不做没被要求的事**。
diff --git a/rules/general/moyu-anti-over-engineering/README.md b/rules/general/moyu-anti-over-engineering/README.md
new file mode 100644
index 0000000..d00d528
--- /dev/null
+++ b/rules/general/moyu-anti-over-engineering/README.md
@@ -0,0 +1,24 @@
+# 摸鱼 (Moyu) 反过度工程 .cursorrules 提示文件
+
+作者:uucz
+
+## 你可以构建什么
+
+使用此规则集,你的 AI 编码助手将只做被要求做的事情,不会过度工程。适用于任何编程语言和框架。
+
+## 优势
+
+- 减少 66% 的不必要代码输出
+- AI 不再添加无人要求的注释、文档、测试
+- 修改范围严格限定在用户指定的代码内
+- 4 级过度工程检测和自动纠正
+
+## 概要
+
+摸鱼 (Moyu) 是一个反过度工程规则集,通过三条铁律约束 AI 编码行为:只改被要求改的代码、最简方案优先、不确定就问。
+
+## .cursorrules 提示概述
+
+该提示文件设定 AI 为一个理解"少即是多"的 Staff Engineer 身份,包含内卷 vs 摸鱼对比表、交付前检查清单、反内卷冲动指南,以及与 PUA 技能的兼容说明。
+
+更多信息:https://github.com/uucz/moyu
diff --git a/rules/gherkin-style-testing-cursorrules-prompt-file/README.md b/rules/gherkin-style-testing-cursorrules-prompt-file/README.md
new file mode 100644
index 0000000..b224f12
--- /dev/null
+++ b/rules/gherkin-style-testing-cursorrules-prompt-file/README.md
@@ -0,0 +1,36 @@
+# Gherkin 风格测试提示
+
+这是一个专门的 .cursorrules 提示,用于创建清晰、结构化的 Gherkin 格式测试文档,以便非技术利益相关者能够理解。
+
+## 您可以构建的内容
+
+- **Gherkin 测试场景**:使用 Given-When-Then 格式的结构化测试文档
+- **功能文档**:应用程序功能的全面测试覆盖
+- **法律友好型测试用例**:法律和合规团队可以审查的测试场景
+- **人类可读的测试计划**:将技术测试用例转换为通俗易懂的语言
+- **数据驱动测试场景**:使用场景大纲(Scenario Outline)和示例表格(Examples)的参数化测试
+
+## 优势
+
+- **跨团队协作**:技术团队和非技术团队都能理解的测试文档
+- **法律合规**:适用于法律和监管文档的结构化格式
+- **以用户为中心的测试**:从用户角度编写的场景
+- **清晰的测试要求**:明确定义的测试执行和结果预期
+- **组织化的测试结构**:具有功能(feature)、场景(scenario)和步骤定义(step definitions)的一致格式
+- **行为驱动开发(BDD)**:支持测试工作流中的 BDD 实践
+
+## 概要
+
+此提示帮助质量保证工程师创建高质量的 Gherkin 格式测试文档,弥合技术测试与业务需求之间的鸿沟,使测试场景对所有利益相关者都易于理解。
+
+## .cursorrules 提示概述
+
+.cursorrules 提示指导质量保证工程师创建有效的 Gherkin 文档,包含以下关键要素:
+
+- **Gherkin 语法**:有效使用 Feature、Scenario、Given、When、Then、And、But 的指南
+- **最佳实践**:编写清晰有效 Gherkin 文档的八项基本实践
+- **示例结构**:包含背景(Background)、场景(Scenario)和注释(Notes)的完整功能示例
+- **技术转换**:将技术测试脚本转换为 Gherkin 格式的分步流程
+- **简单语言**:强调使用非技术语言,便于所有利益相关者理解
+- **数据示例**:使用示例表格(Examples)进行数据驱动测试的技术
+- **场景组织**:在功能内组织相关测试场景的方法
diff --git a/rules/git-conventional-commit-messages/README.md b/rules/git-conventional-commit-messages/README.md
new file mode 100644
index 0000000..1c28669
--- /dev/null
+++ b/rules/git-conventional-commit-messages/README.md
@@ -0,0 +1,13 @@
+## 约定式提交消息
+
+这是一个用于生成约定式提交消息的 .cursorrules 提示文件。
+
+## 使用方法
+
+1. 将 .cursorrules 文件复制到您的项目中。
+2. 打开 Cursor AI 并选择 .cursorrules 文件。
+3. 开始输入您的提交消息。
+4. Cursor AI 将生成约定式提交消息。
+5. 复制约定式提交消息并粘贴到终端中。
+
+基于约定式提交消息规范 V1.0.0:https://www.conventionalcommits.org/en/v1.0.0/#specification
diff --git a/rules/github-code-quality-cursorrules-prompt-file/file-by-file-changes-rule.mdc b/rules/github-code-quality-cursorrules-prompt-file/file-by-file-changes-rule.mdc
new file mode 100644
index 0000000..0a4de92
--- /dev/null
+++ b/rules/github-code-quality-cursorrules-prompt-file/file-by-file-changes-rule.mdc
@@ -0,0 +1,5 @@
+---
+description: 此规则指示 AI 逐个文件进行更改,让用户有机会发现错误。
+globs: **/*.*
+---
+- 逐个文件进行更改,让我有机会发现错误
diff --git a/rules/xray-test-case-cursorrules-prompt-file/README.md b/rules/xray-test-case-cursorrules-prompt-file/README.md
new file mode 100644
index 0000000..d18aac8
--- /dev/null
+++ b/rules/xray-test-case-cursorrules-prompt-file/README.md
@@ -0,0 +1,35 @@
+# Xray 测试用例提示
+
+这是一个专门的 .cursorrules 提示,用于从自动化测试或功能描述中创建结构化、兼容 Jira 的 Xray 测试用例。
+
+## 您可以构建的内容
+
+- **Xray 测试用例**:用于手动和自动化测试的 Jira 就绪测试场景
+- **测试规范**:包含前置条件和预期结果的清晰结构化测试用例
+- **手动测试指令**:为手动测试人员提供清晰的逐步指令
+- **数据驱动测试**:具有多种数据变化的参数化测试
+- **Jira 集成测试**:具有适当 Xray 注释的测试用例,用于 Jira 链接
+
+## 优势
+
+- **Jira 集成**:生成可直接导入 Jira(使用 Xray)的测试用例
+- **利益相关者友好**:非技术格式,业务用户也能理解
+- **标准化结构**:所有测试用例的一致格式
+- **自动化兼容性**:创建可使用您首选框架自动化的测试
+- **可追溯性**:包含用于链接测试到 Jira 问题的 Xray 标签
+- **完整覆盖**:处理正常流程、边界情况和数据变化
+
+## 概要
+
+此提示帮助质量保证工程师创建格式正确的 Xray 测试用例,可直接导入 Jira,促进技术与非技术利益相关者之间的协作。
+
+## .cursorrules 提示概述
+
+.cursorrules 提示指导质量保证工程师创建有效的 Xray 测试用例,包含以下关键要素:
+
+- **结构化格式**:兼容 Xray 的适当测试用例结构
+- **最佳实践**:创建清晰有效测试用例的八项基本实践
+- **示例结构**:包含前置条件和步骤的完整测试用例详细示例
+- **转换流程**:将自动化测试转换为 Xray 格式的分步指南
+- **Jira 集成**:使用 Xray 特定注释进行 Jira 链接的指导
+- **数据驱动测试**:使用多数据集参数化测试的技术
diff --git a/scripts/validate_translations.py b/scripts/validate_translations.py
deleted file mode 100644
index 1ea1913..0000000
--- a/scripts/validate_translations.py
+++ /dev/null
@@ -1,20 +0,0 @@
-import glob
-import yaml
-from pathlib import Path
-
-def check_translation_consistency():
- errors = 0
- for file in glob.glob("rules/**/*.mdc", recursive=True):
- with open(file, encoding='utf-8') as f:
- content = f.read()
- if "---" not in content:
- print(f"❌ {file} 缺少元数据头部")
- errors += 1
- elif "description:" not in content:
- print(f"⚠️ {file} 缺少description描述")
- return errors
-
-if __name__ == "__main__":
- print("开始翻译校验...")
- error_count = check_translation_consistency()
- print(f"校验完成,发现 {error_count} 处问题")