feat(zh): add Chinese translations in zh/ directory

Add Chinese (Simplified) translations for all documentation, organized
under a dedicated zh/ directory that mirrors the English folder structure.

Co-authored-by: tanqingkuang <tanqingkuang@users.noreply.github.com>

Translations originally contributed by @tanqingkuang in #45.
Restructured from *-CN.md suffix pattern into zh/ directory to prevent
the EPUB builder (scripts/build_epub.py collect_folder_files) from
picking up Chinese files via glob("*.md") inside module folders.
This commit is contained in:
Luong NGUYEN
2026-04-06 23:08:54 +02:00
committed by GitHub
parent 100c45eef2
commit 89e89d4aa3
100 changed files with 20487 additions and 1 deletions

View File

@@ -0,0 +1,551 @@
<picture>
<source media="(prefers-color-scheme: dark)" srcset="../resources/logos/claude-howto-logo-dark.svg">
<img alt="Claude How To" src="../resources/logos/claude-howto-logo.svg">
</picture>
# Slash Commands 参考指南
## 概览
Slash command 是你在 Claude 的交互式会话中用来控制行为的快捷方式,主要分为几类:
- **内置命令**Claude Code 自带,例如 `/help``/clear``/model`
- **Skills**:你自己定义的命令,基于 `SKILL.md` 文件,例如 `/optimize``/pr`
- **插件命令**:来自已安装插件的命令,例如 `/frontend-design:frontend-design`
- **MCP prompts**:来自 MCP server 的命令,例如 `/mcp__github__list_prs`
> **注意**:自定义 slash command 已经合并进 Skills。`.claude/commands/` 仍然可用,但现在更推荐使用 `.claude/skills/`。两者都会创建 `/command-name` 形式的快捷命令。完整参考请见 [Skills 指南](../03-skills/README.md)。
## 内置命令速查
Claude Code 目前提供 55+ 个内置命令和 5 个内置 Skills。你可以在 Claude Code 中输入 `/` 查看全部,也可以输入 `/` 后继续键入字母进行筛选。
| 命令 | 作用 |
|---------|---------|
| `/add-dir <path>` | 添加工作目录 |
| `/agents` | 管理 agent 配置 |
| `/branch [name]` | 将当前对话分支到新会话(别名:`/fork`。注意:`/fork` 在 v2.1.77 中更名为 `/branch` |
| `/btw <question>` | 额外问题,不写入历史 |
| `/chrome` | 配置 Chrome 浏览器集成 |
| `/clear` | 清空对话(别名:`/reset``/new` |
| `/color [color|default]` | 设置提示栏颜色 |
| `/compact [instructions]` | 压缩对话,可附带聚焦指令 |
| `/config` | 打开设置(别名:`/settings` |
| `/context` | 用彩色网格可视化上下文占用 |
| `/copy [N]` | 将 assistant 回复复制到剪贴板;`w` 会写入文件 |
| `/cost` | 查看 token 使用统计 |
| `/desktop` | 继续在桌面应用中处理(别名:`/app` |
| `/diff` | 查看未提交更改的交互式 diff |
| `/doctor` | 检查安装健康状态 |
| `/effort [low|medium|high|max|auto]` | 设置推理强度;`max` 需要 Opus 4.6 |
| `/exit` | 退出 REPL别名`/quit` |
| `/export [filename]` | 将当前对话导出为文件或剪贴板内容 |
| `/extra-usage` | 配置额外用量以应对速率限制 |
| `/fast [on|off]` | 切换快速模式 |
| `/feedback` | 提交反馈(别名:`/bug` |
| `/help` | 显示帮助 |
| `/hooks` | 查看 hook 配置 |
| `/ide` | 管理 IDE 集成 |
| `/init` | 初始化 `CLAUDE.md`,可设置 `CLAUDE_CODE_NEW_INIT=true` 启用交互式流程 |
| `/insights` | 生成会话分析报告 |
| `/install-github-app` | 配置 GitHub Actions app |
| `/install-slack-app` | 安装 Slack app |
| `/keybindings` | 打开快捷键配置 |
| `/login` | 切换 Anthropic 账号 |
| `/logout` | 退出当前 Anthropic 账号 |
| `/mcp` | 管理 MCP servers 和 OAuth |
| `/memory` | 编辑 `CLAUDE.md`,切换自动记忆 |
| `/mobile` | 生成移动端扫码二维码(别名:`/ios``/android` |
| `/model [model]` | 选择模型,并可用左右箭头调整 effort |
| `/passes` | 分享一周免费 Claude Code 使用权 |
| `/permissions` | 查看或更新权限(别名:`/allowed-tools` |
| `/plan [description]` | 进入规划模式 |
| `/plugin` | 管理插件 |
| `/pr-comments [PR]` | 获取 GitHub PR 评论 |
| `/privacy-settings` | 隐私设置(仅 Pro/Max |
| `/release-notes` | 查看更新日志 |
| `/reload-plugins` | 重新加载当前插件 |
| `/remote-control` | 从 claude.ai 进行远程控制(别名:`/rc` |
| `/remote-env` | 配置默认远程环境 |
| `/rename [name]` | 重命名会话 |
| `/resume [session]` | 恢复对话(别名:`/continue` |
| `/review` | **已弃用**,请改用 `code-review` 插件 |
| `/rewind` | 回退对话和/或代码(别名:`/checkpoint` |
| `/sandbox` | 切换沙盒模式 |
| `/schedule [description]` | 创建/管理定时任务 |
| `/security-review` | 分析分支中的安全漏洞 |
| `/skills` | 列出可用 Skills |
| `/stats` | 可视化每日使用量、会话和连续天数 |
| `/status` | 显示版本、模型、账号 |
| `/statusline` | 配置状态栏 |
| `/tasks` | 列出/管理后台任务 |
| `/terminal-setup` | 配置终端快捷键 |
| `/theme` | 更改颜色主题 |
| `/vim` | 切换 Vim/Normal 模式 |
| `/voice` | 切换按住说话语音输入 |
### 内置 Skills
以下 Skills 随 Claude Code 一起提供,调用方式和 slash command 一样:
| Skill | 作用 |
|-------|---------|
| `/batch <instruction>` | 使用 worktree 编排大规模并行修改 |
| `/claude-api` | 加载 Claude API 参考,便于为项目所用语言编写代码 |
| `/debug [description]` | 启用调试日志 |
| `/loop [interval] <prompt>` | 按固定间隔重复运行提示词 |
| `/simplify [focus]` | 审查改动文件的代码质量 |
### 已弃用命令
| 命令 | 状态 |
|---------|--------|
| `/review` | 已弃用,已被 `code-review` 插件替代 |
| `/output-style` | 自 v2.1.73 起弃用 |
| `/fork` | 已重命名为 `/branch`别名仍可用v2.1.77 |
### 最近变化
- `/fork` 已更名为 `/branch`,但保留 `/fork` 作为别名v2.1.77
- `/output-style` 已弃用v2.1.73
- `/review` 已弃用,推荐改用 `code-review` 插件
- 新增 `/effort`,其中 `max` 级别需要 Opus 4.6
- 新增 `/voice`,用于按住说话语音输入
- 新增 `/schedule`,用于创建和管理定时任务
- 新增 `/color`,用于自定义提示栏颜色
- `/model` 选择器现在显示人类可读标签,例如 “Sonnet 4.6”
- `/resume` 支持 `/continue` 别名
- MCP prompts 可作为 `/mcp__<server>__<prompt>` 命令使用,见 [MCP Prompts as Commands](#mcp-prompts-作为命令)
## 自定义命令(现已归入 Skills
自定义 slash command 已经**合并到 Skills**。两种方式都可以通过 `/command-name` 调用:
| 方式 | 位置 | 状态 |
|----------|----------|--------|
| **Skills推荐** | `.claude/skills/<name>/SKILL.md` | 当前标准 |
| **旧式命令** | `.claude/commands/<name>.md` | 仍可使用 |
如果 skill 和 command 同名,**skill 优先**。例如同时存在 `.claude/commands/review.md``.claude/skills/review/SKILL.md` 时,会使用 skill 版本。
### 迁移路径
你现有的 `.claude/commands/` 文件可以继续直接使用。若要迁移到 Skills
**迁移前Command**
```text
.claude/commands/optimize.md
```
**迁移后Skill**
```text
.claude/skills/optimize/SKILL.md
```
### 为什么用 Skills
- **目录结构**:可以把脚本、模板、参考文件打包在一起
- **自动触发**:相关场景下 Claude 可以自动调用
- **调用控制**可以决定由用户、Claude 或两者共同调用
- **子 agent 执行**:可在隔离上下文中运行 skill
- **渐进披露**:只在需要时加载额外文件
### 把自定义命令做成 Skill
创建一个包含 `SKILL.md` 的目录:
```bash
mkdir -p .claude/skills/my-command
```
**文件:** `.claude/skills/my-command/SKILL.md`
```yaml
---
name: my-command
description: 这个命令的作用,以及何时使用它
---
# 我的命令
当该命令被触发时Claude 需要遵循的说明。
1. 第一步
2. 第二步
3. 第三步
```
### Frontmatter 参考
| 字段 | 作用 | 默认值 |
|-------|---------|---------|
| `name` | 命令名(会变成 `/name` | 目录名 |
| `description` | 简短说明,帮助 Claude 判断何时使用 | 第一段 |
| `argument-hint` | 自动补全时显示的参数提示 | 无 |
| `allowed-tools` | 命令可无权限使用的工具 | 继承 |
| `model` | 指定要使用的模型 | 继承 |
| `disable-model-invocation` | 若为 `true`只有用户能调用Claude 不能自动调用 | `false` |
| `user-invocable` | 若为 `false`,不会出现在 `/` 菜单中 | `true` |
| `context` | 设为 `fork` 时,在隔离 subagent 中运行 | 无 |
| `agent` | `context: fork` 时使用的 agent 类型 | `general-purpose` |
| `hooks` | Skill 范围内的 hooksPreToolUse、PostToolUse、Stop | 无 |
### 参数
命令可以接收参数:
**使用 `$ARGUMENTS` 接收全部参数:**
```yaml
---
name: fix-issue
description: 根据编号修复 GitHub issue
---
按团队编码规范修复 #$ARGUMENTS
```
调用 `/fix-issue 123` 时,`$ARGUMENTS` 会变成 `123`
**使用 `$0`、`$1` 等接收单个参数:**
```yaml
---
name: review-pr
description: 按优先级审查 PR
---
审查 #$0优先级为 $1
```
调用 `/review-pr 456 high` 时,`$0="456"``$1="high"`
### 用 Shell 命令注入动态上下文
在 prompt 发送前,可用 `!` 命令先执行 shell 命令:
```yaml
---
name: commit
description: 使用上下文创建 git commit
allowed-tools: Bash(git *)
---
## 上下文
- 当前 git 状态:!`git status`
- 当前 diff!`git diff HEAD`
- 当前分支:!`git branch --show-current`
- 最近提交:!`git log --oneline -5`
## 你的任务
根据以上变更,创建一个 git commit。
```
### 文件引用
使用 `@` 引用文件内容:
```markdown
审查 @src/utils/helpers.js 中的实现
比较 @src/old-version.js 和 @src/new-version.js
```
## 插件命令
插件可以提供自定义命令:
```text
/plugin-name:command-name
```
如果没有命名冲突,也可以直接使用 `/command-name`
**示例:**
```bash
/frontend-design:frontend-design
/commit-commands:commit
```
## MCP Prompts 作为命令
MCP servers 可以把 prompt 暴露成 slash command
```text
/mcp__<server-name>__<prompt-name> [arguments]
```
**示例:**
```bash
/mcp__github__list_prs
/mcp__github__pr_review 456
/mcp__jira__create_issue "Bug title" high
```
### MCP 权限语法
在权限中控制 MCP server 访问:
- `mcp__github` - 访问整个 GitHub MCP server
- `mcp__github__*` - 通配符访问全部工具
- `mcp__github__get_issue` - 访问某个特定工具
## 命令架构
```mermaid
graph TD
A["用户输入:/command-name"] --> B{"命令类型?"}
B -->|内置| C["执行内置命令"]
B -->|Skill| D["加载 SKILL.md"]
B -->|插件| E["加载插件命令"]
B -->|MCP| F["执行 MCP Prompt"]
D --> G["解析 Frontmatter"]
G --> H["替换变量"]
H --> I["执行 Shell 命令"]
I --> J["发送给 Claude"]
J --> K["返回结果"]
```
## 命令生命周期
```mermaid
sequenceDiagram
participant User
participant Claude as Claude Code
participant FS as File System
participant CLI as Shell/Bash
User->>Claude: 输入 /optimize
Claude->>FS: 搜索 .claude/skills/ 和 .claude/commands/
FS-->>Claude: 返回 optimize/SKILL.md
Claude->>Claude: 解析 frontmatter
Claude->>CLI: 执行 !`command` 替换
CLI-->>Claude: 命令输出
Claude->>Claude: 替换 $ARGUMENTS
Claude->>User: 处理 prompt
Claude->>User: 返回结果
```
## 本文件中的可用命令
这些示例命令可以作为 skill 或旧式命令安装。
### 1. `/optimize` - 代码优化
分析性能问题、内存泄漏和优化机会。
**用法:**
```text
/optimize
[粘贴你的代码]
```
**文件:** [optimize.md](optimize.md)
### 2. `/pr` - Pull Request 准备
引导你完成 PR 准备清单,包括 lint、测试和提交格式整理。
**用法:**
```text
/pr
```
**文件:** [pr.md](pr.md)
**截图:**
![/pr](pr-slash-command.png)
### 3. `/generate-api-docs` - API 文档生成器
从源码生成完整的 API 文档。
**用法:**
```text
/generate-api-docs
```
**文件:** [generate-api-docs.md](generate-api-docs.md)
### 4. `/commit` - 带上下文的 Git Commit
基于仓库中的动态上下文创建 git commit。
**用法:**
```text
/commit [可选说明]
```
**文件:** [commit.md](commit.md)
### 5. `/push-all` - 暂存、提交并推送
会先暂存所有改动,再提交,并带安全检查地推送到远端。
**用法:**
```text
/push-all
```
**文件:** [push-all.md](push-all.md)
**安全检查:**
- 密钥文件:`.env*``*.key``*.pem``credentials.json`
- API Keys识别真实 key 与占位符
- 大文件:未使用 Git LFS 且大于 10MB
- 构建产物:`node_modules/``dist/``__pycache__/`
### 6. `/doc-refactor` - 文档重构
重组项目文档,让结构更清晰、可访问性更好。
**文件:** [doc-refactor.md](doc-refactor.md)
### 7. `/setup-ci-cd` - CI/CD 流水线配置
实现 pre-commit hooks 和 GitHub Actions 质量保障流程。
**文件:** [setup-ci-cd.md](setup-ci-cd.md)
### 8. `/unit-test-expand` - 测试覆盖率扩展
针对未测试分支和边界情况,提升测试覆盖率。
**文件:** [unit-test-expand.md](unit-test-expand.md)
## 安装
### 作为 Skills推荐
复制到你的 skills 目录:
```bash
# 创建 skills 目录
mkdir -p .claude/skills
# 对每个命令文件,创建一个 skill 目录
for cmd in optimize pr commit; do
mkdir -p .claude/skills/$cmd
cp 01-slash-commands/$cmd.md .claude/skills/$cmd/SKILL.md
done
```
### 作为旧式命令
复制到 commands 目录:
```bash
# 项目范围(团队)
mkdir -p .claude/commands
cp 01-slash-commands/*.md .claude/commands/
# 个人使用
mkdir -p ~/.claude/commands
cp 01-slash-commands/*.md ~/.claude/commands/
```
## 创建你自己的命令
### Skill 模板(推荐)
创建 `.claude/skills/my-command/SKILL.md`
```yaml
---
name: my-command
description: 这个命令做什么。用于 [触发条件]。
argument-hint: [可选参数]
allowed-tools: Bash(npm *), Read, Grep
---
# Command Title
## 上下文
- 当前分支:!`git branch --show-current`
- 相关文件:@package.json
## 指令
1. 第一步
2. 第二步,参数:$ARGUMENTS
3. 第三步
## 输出格式
- 如何格式化回复
- 需要包含什么
```
### 仅用户可调用的命令(无自动触发)
对于带副作用、Claude 不应自动触发的命令:
```yaml
---
name: deploy
description: 部署到生产环境
disable-model-invocation: true
allowed-tools: Bash(npm *), Bash(git *)
---
将应用部署到生产环境:
1. 运行测试
2. 构建应用
3. 推送到部署目标
4. 验证部署
```
## 最佳实践
| 应该做 | 不要做 |
|------|---------|
| 使用清晰、以动作导向的命名 | 为一次性任务创建命令 |
| 在 `description` 中写清触发条件 | 在命令里写太复杂的逻辑 |
| 保持命令聚焦于单一任务 | 硬编码敏感信息 |
| 有副作用时使用 `disable-model-invocation` | 跳过 description 字段 |
| 用 `!` 前缀注入动态上下文 | 假设 Claude 知道当前状态 |
| 把相关文件组织进 skill 目录 | 所有内容都塞进一个文件 |
## 故障排查
### 找不到命令
**解决办法:**
- 检查文件是否位于 `.claude/skills/<name>/SKILL.md``.claude/commands/<name>.md`
- 确认 frontmatter 中的 `name` 与预期命令名一致
- 重启 Claude Code 会话
- 运行 `/help` 查看可用命令
### 命令没有按预期执行
**解决办法:**
- 补充更具体的指令
- 在 skill 文件中加入示例
- 如果使用 bash 命令,检查 `allowed-tools`
- 先用简单输入测试
### Skill 与 Command 冲突
如果同名同时存在,**skill 优先**。删除其中一个或重命名即可。
## 相关指南
- **[Skills](../03-skills/README.md)** - 完整的 Skills 参考
- **[Memory](../02-memory/README.md)** - 带 `CLAUDE.md` 的持久上下文
- **[Subagents](../04-subagents/README.md)** - 委派式 AI agents
- **[Plugins](../07-plugins/README.md)** - 打包好的命令集合
- **[Hooks](../06-hooks/README.md)** - 事件驱动自动化
## 其他资源
- [官方交互模式文档](https://code.claude.com/docs/en/interactive-mode) - 内置命令参考
- [官方 Skills 文档](https://code.claude.com/docs/en/skills) - 完整 Skills 参考
- [CLI Reference](https://code.claude.com/docs/en/cli-reference) - 命令行选项
---
*Claude How To 指南系列的一部分*

View File

@@ -0,0 +1,26 @@
---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*), Bash(git diff:*)
argument-hint: [message]
description: 创建带上下文的 Git 提交
---
## 上下文
- 当前 git 状态: !`git status`
- 当前 git diff: !`git diff HEAD`
- 当前分支: !`git branch --show-current`
- 最近的提交: !`git log --oneline -10`
## 你的任务
根据上面的变更创建一个单独的 Git 提交。
如果通过参数传入了 message就直接使用它$ARGUMENTS
否则,分析这些变更,并按照 conventional commits 格式生成合适的提交信息:
- `feat:` 新功能
- `fix:` 修复 bug
- `docs:` 文档变更
- `refactor:` 代码重构
- `test:` 新增测试
- `chore:` 维护任务

View File

@@ -0,0 +1,24 @@
---
name: 文档重构
description: 为项目重新组织文档结构,以提升清晰度和可访问性
tags: documentation, refactoring, organization
---
# 文档重构
根据项目类型重构项目文档结构:
1. **分析项目**:识别类型(库/API/Web 应用/CLI/微服务)、架构和用户角色
2. **集中管理文档**:将技术文档迁移到 `docs/`,并保留正确的交叉引用
3. **整理根目录 README.md**:将其精简为入口页,包含概览、快速开始、模块/组件摘要、许可证和联系方式
4. **为组件补充文档**:添加模块/包/服务级别的 README 文件,包含安装和测试说明
5. **按主题组织 `docs/`**
- 架构、API Reference、数据库、设计、故障排查、部署、贡献根据项目需要调整
6. **创建指南**(按需选择):
- 用户指南:面向应用最终用户的文档
- API 文档API 的端点、认证和示例
- 开发指南:环境搭建、测试、贡献流程
- 部署指南:服务/应用的生产部署
7. **所有图表都使用 Mermaid**架构图、流程图、Schema 图)
保持文档简洁、易扫读,并与项目类型保持上下文一致。

View File

@@ -0,0 +1,19 @@
---
description: 根据源代码生成完整的 API 文档
---
# API 文档生成器
按以下步骤生成 API 文档:
1. 扫描 `/src/api/` 下的所有文件
2. 提取函数签名和 JSDoc 注释
3. 按端点/模块进行组织
4. 生成带示例的 Markdown
5. 包含请求/响应 Schema
6. 添加错误文档
输出格式:
- 输出为 `/docs/api.md` 中的 Markdown 文件
- 为所有端点加入 curl 示例
- 添加 TypeScript 类型

View File

@@ -0,0 +1,19 @@
---
description: 分析代码中的性能问题并提出优化建议
---
# 代码优化
按优先级审查提供的代码,重点关注以下问题:
1. **性能瓶颈** - 识别 O(n²) 操作和低效循环
2. **内存泄漏** - 查找未释放的资源、循环引用
3. **算法改进** - 建议更好的算法或数据结构
4. **缓存机会** - 识别重复计算
5. **并发问题** - 查找竞态条件或线程问题
请按以下格式输出:
- 问题严重性Critical/High/Medium/Low
- 代码位置
- 解释
- 推荐修复方案,附代码示例

View File

@@ -0,0 +1,26 @@
---
description: 清理代码、暂存变更并准备 Pull Request
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git diff:*), Bash(npm test:*), Bash(npm run lint:*)
---
# Pull Request 准备清单
在创建 PR 之前,请执行以下步骤:
1. 运行格式化:`prettier --write .`
2. 运行测试:`npm test`
3. 查看 git diff`git diff HEAD`
4. 暂存变更:`git add .`
5. 按 conventional commits 创建提交信息:
- `fix:` bug 修复
- `feat:` 新功能
- `docs:` 文档
- `refactor:` 代码重构
- `test:` 测试新增
- `chore:` 维护
6. 生成 PR 摘要,包含:
- 变更了什么
- 为什么变更
- 做了哪些测试
- 可能的影响

View File

@@ -0,0 +1,152 @@
---
description: 暂存所有变更,创建提交并推送到远程(请谨慎使用)
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*), Bash(git push:*), Bash(git diff:*), Bash(git log:*), Bash(git pull:*)
---
# 提交并推送全部内容
⚠️ **注意**:将所有变更都暂存、提交并推送到远程。只有在你确认所有改动都应该放在一起时才使用。
## 工作流
### 1. 分析变更
并行运行:
- `git status` - 显示已修改/已添加/已删除/未跟踪文件
- `git diff --stat` - 显示变更统计
- `git log -1 --oneline` - 查看最近一次提交,便于统一提交信息风格
### 2. 安全检查
**❌ 如果发现以下内容,立即停止并警告:**
- Secrets`.env*``*.key``*.pem``credentials.json``secrets.yaml``id_rsa``*.p12``*.pfx``*.cer`
- API Keys任何 `*_API_KEY``*_SECRET``*_TOKEN` 变量包含真实值,而不是占位符,如 `your-api-key``xxx``placeholder`
- 大文件:`>10MB` 且未使用 Git LFS
- 构建产物:`node_modules/``dist/``build/``__pycache__/``*.pyc``.venv/`
- 临时文件:`.DS_Store``thumbs.db``*.swp``*.tmp`
**API Key 校验:**
检查修改文件中是否存在以下模式:
```bash
OPENAI_API_KEY=sk-proj-xxxxx # ❌ 检测到真实密钥!
AWS_SECRET_KEY=AKIA... # ❌ 检测到真实密钥!
STRIPE_API_KEY=sk_live_... # ❌ 检测到真实密钥!
# ✅ 可接受的占位符:
API_KEY=your-api-key-here
SECRET_KEY=placeholder
TOKEN=xxx
API_KEY=<your-key>
SECRET=${YOUR_SECRET}
```
**✅ 确认:**
- `.gitignore` 配置正确
- 没有合并冲突
- 分支正确(如果是 `main`/`master` 要提醒)
- API key 只是占位符
### 3. 请求确认
展示摘要:
```
📊 变更摘要:
- X 个文件已修改Y 个文件已新增Z 个文件已删除
- 总计:+AAA 行新增,-BBB 行删除
🔒 安全性:✅ 无 secrets | ✅ 无大文件 | ⚠️ [警告]
🌿 分支: [name] → origin/[name]
我将执行git add . → commit → push
请输入 'yes' 继续,或输入 'no' 取消。
```
**在收到明确的 "yes" 之前不要继续。**
### 4. 执行(确认后)
按顺序运行:
```bash
git add .
git status # 验证暂存状态
```
### 5. 生成提交信息
分析变更并创建 conventional commit
**格式:**
```
[type]: 简要摘要(最多 72 个字符)
- 关键改动 1
- 关键改动 2
- 关键改动 3
```
**类型:** `feat``fix``docs``style``refactor``test``chore``perf``build``ci`
**示例:**
```
docs: 更新概念文档,补充完整说明
- 添加架构图和表格
- 补充实用示例
- 扩展最佳实践部分
```
### 6. 提交并推送
```bash
git commit -m "$(cat <<'EOF'
[生成的提交信息]
EOF
)"
git push # 如果失败git pull --rebase && git push
git log -1 --oneline --decorate # 验证
```
### 7. 确认成功
```
✅ 已成功推送到远程!
Commit: [hash] [message]
Branch: [branch] → origin/[branch]
Files changed: X (+insertions, -deletions)
```
## 错误处理
- `git add` 失败:检查权限、锁定文件,确认仓库已初始化
- `git commit` 失败:修复 pre-commit hooks检查 git 配置user.name/email
- `git push` 失败:
- 非快进:`git pull --rebase && git push`
- 没有远程分支:`git push -u origin [branch]`
- 受保护分支:改用 PR 工作流
## 适用场景
**适合:**
- 多文件文档更新
- 同时包含测试和文档的功能
- 跨多个文件的 bug 修复
- 项目级格式化/重构
- 配置变更
**避免:**
- 不确定要提交哪些内容
- 包含 secrets/敏感数据
- 受保护分支且未经过审核
- 存在合并冲突
- 想保留更细粒度的提交历史
- pre-commit hooks 失败
## 替代方案
如果用户想保留控制权,可以建议:
1. **选择性暂存**:查看并暂存特定文件
2. **交互式暂存**:使用 `git add -p` 逐块选择
3. **PR 工作流**:创建分支 → 推送 → 发起 PR使用 `/pr` 命令)
**⚠️ 记住**:在推送前始终先检查变更。拿不准时,使用单独的 git 命令会更可控。

View File

@@ -0,0 +1,25 @@
---
name: 设置 CI/CD 流水线
description: 实现 pre-commit hooks 和 GitHub Actions 质量保障
tags: ci-cd, devops, automation
---
# 设置 CI/CD 流水线
根据项目类型实现完整的 DevOps 质量门禁:
1. **分析项目**:检测语言、框架、构建系统和现有工具链
2. **配置 pre-commit hooks**,使用与语言匹配的工具:
- 格式化Prettier/Black/gofmt/rustfmt 等
- 代码检查ESLint/Ruff/golangci-lint/Clippy 等
- 安全Bandit/gosec/cargo-audit/npm audit 等
- 类型检查TypeScript/mypy/flow如适用
- 测试:运行相关测试套件
3. **创建 GitHub Actions 工作流**`.github/workflows/`
- 在 push/PR 时镜像 pre-commit 检查
- 多版本/多平台矩阵(如适用)
- 构建和测试验证
- 部署步骤(如需要)
4. **验证流水线**:本地测试、创建测试 PR确认所有检查都通过
使用免费/开源工具。尊重已有配置。保持执行快速。

View File

@@ -0,0 +1,25 @@
---
name: 扩充单元测试
description: 通过覆盖未测试分支和边界情况来提高测试覆盖率
tags: testing, coverage, unit-tests
---
# 扩充单元测试
根据项目的测试框架,扩充现有单元测试:
1. **分析覆盖率**:运行覆盖率报告,找出未测试分支、边界情况和低覆盖区域
2. **识别缺口**:审查代码中的逻辑分支、错误路径、边界条件、空值/空输入
3. **编写测试**,使用项目现有框架:
- Jest/Vitest/MochaJavaScript/TypeScript
- pytest/unittestPython
- Go testing/testifyGo
- Rust test frameworkRust
4. **针对具体场景**
- 错误处理和异常
- 边界值(最小/最大、空值、空输入)
- 边缘情况和极端情况
- 状态转换和副作用
5. **验证提升**:再次运行覆盖率,确认有可衡量的提升
只展示新增的测试代码块。遵循现有测试模式和命名约定。