From 5181e6de4cb0f87b8ea0cee7a547f983210f4c4b Mon Sep 17 00:00:00 2001 From: damingishere-coder Date: Sat, 29 Aug 2026 16:11:31 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E7=BB=9F=E4=B8=80=20Git=20=E4=B8=8E?= =?UTF-8?q?=20PR=20=E5=B7=A5=E4=BD=9C=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/PULL_REQUEST_TEMPLATE.md | 5 ++ AGENTS.md | 108 +++++++------------------------ 2 files changed, 29 insertions(+), 84 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index b5de185..3b88b30 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -58,3 +58,8 @@ cd front && pnpm lint - [ ] 不需要更新文档 - [ ] 已更新 README / Windows Setup / Architecture / Task Flow / Security / Roadmap / Changelog 中的相关内容 + +## 风险与回滚 + +- 主要风险: +- 回滚方式: diff --git a/AGENTS.md b/AGENTS.md index 062dacf..c8adea4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,89 +1,29 @@ # Codex 项目开发规则 -## 1. Git 使用规则 - -* 每次修改代码前,先检查当前 Git 状态: - - * 执行 `git status` - * 确认当前所在分支 - * 如果存在用户未提交的修改,不要覆盖,先提醒我 - -* `main` 分支只作为稳定版本使用。 - -* 如果是新增功能、较大改动、UI 重构、数据结构调整,应先创建功能分支,不要直接在 `main` 上大改。 - -* 分支命名使用英文或拼音,例如: - - * `feature/push-calendar` - * `feature/apple-ui` - * `fix/video-scan-slow` - * `refactor/customer-page` - * `docs/git-auto-pr-rules` - -## 2. Commit 规则 - -* 每完成一个独立功能点,进行一次 Git 提交。 - -* 提交说明使用中文。 - -* Commit 命名格式固定为: - - * `新增:xxx` - * `修复:xxx` - * `优化:xxx` - * `重构:xxx` - * `文档:xxx` - * `配置:xxx` - -* 不要把多个无关功能混在一个 commit 里。 - -* 不要提交虚拟环境、缓存文件、日志文件、临时文件。 - -## 3. 自动提交与 PR 规则 - -每次完成开发任务后,如果满足以下条件,默认自动执行 Git 保存、推送到 GitHub,并创建 PR: - -1. 代码修改已经完成。 -2. 已经运行可用的测试、构建或启动检查。 -3. 没有明显报错。 -4. 没有发现账号、密码、Cookie、Token、API Key、`.env` 等敏感信息。 -5. `git status` 中的变更都属于本次任务相关内容。 -6. 当前不在 `main` 分支直接大改。 - -默认执行流程: - -1. `git status` -2. `git add .` -3. `git commit -m "类型:本次修改说明"` -4. `git push -u origin 当前分支` -5. 使用 `gh pr create` 创建从当前分支到 `main` 的 PR - -以下操作禁止自动执行,必须先问用户: - -1. 不要自动合并 PR 到 `main`。 -2. 不要自动删除分支。 -3. 不要 force push。 -4. 不要覆盖用户未提交的修改。 -5. 不要提交敏感信息。 -6. 不要修改 GitHub 仓库权限。 -7. 不要删除数据库、日志、配置文件或历史数据。 - -> 注意:如果因为报错、冲突、测试失败、敏感信息风险导致无法自动 commit、push 或创建 PR,必须停止并告诉用户原因,不要硬提交。 - -## 4. 修改完成后必须输出 - -每次任务完成后,请告诉我: - -1. 当前分支名 -2. 本次修改了哪些文件 -3. 本次 Git commit 名称 -4. 本次 commit ID -5. 如何运行或测试 -6. 如果出问题,如何回滚 -7. 如果已 push,输出已 push 的分支名 -8. 如果已创建 PR,输出 PR 链接和下一步建议 - -## 5. 安全规则 +## 1. Git 与 GitHub 工作流 + +- 继承 `~/.codex/AGENTS.md` 的统一 Git 安全规则;本文件只保留本项目额外约束。 +- 修改前检查 `git status --short`、当前分支和上游,保留用户已有修改,不 reset、stash、clean、覆盖或强推。 +- 从远端真实默认分支创建 `codex/<类型>-<简短说明>`,类型使用 `feat`、`fix`、`docs`、`refactor`、`test` 或 `chore`;不假定默认分支名称。 +- 不直接提交或推送到默认分支。已有工作无法安全隔离时停止说明。 +- 分支内允许多个有意义提交,但一个用户任务只建立一个 PR;提交信息和 PR 标题使用 Conventional Commits。 +- 只暂存明确文件路径并检查 `git diff --cached`,禁止 `git add .` 或 `git add -A`。 +- 完成测试、构建和敏感信息检查后普通 Push,并创建或更新指向真实默认分支的 PR。 +- PR 描述必须包含改动摘要、验证结果、风险和回滚说明。 +- CI 通过、分支包含最新默认分支且评论已解决后,仍须用户针对当次 PR 明确确认,才允许 Squash 合并;不得自动合并。 +- Push、PR、冲突、权限或检查失败时停止并报告,不得绕过门禁或改写历史。 + +## 2. 修改完成后必须输出 + +1. 当前默认分支和任务分支。 +2. 本次修改文件与范围。 +3. 实际测试命令和结果。 +4. Commit 标题与 SHA。 +5. Push 后的远端 SHA。 +6. PR 链接、CI 和合并状态。 +7. 风险、回滚方式和下一步。 + +## 3. 安全规则 * 不要删除用户已有数据文件。 * 不要移动项目外部文件。