From 28bd158a8dac3661a9111a53e428157561acbfec Mon Sep 17 00:00:00 2001 From: damingishere-coder Date: Sat, 29 Aug 2026 16:11:30 +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 ++ .github/workflows/ci.yml | 3 ++ AGENTS.md | 89 ++++++++------------------------ DEVELOPMENT_LOG.md | 6 +++ NEXT_STEPS.md | 6 +++ 5 files changed, 42 insertions(+), 67 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 1a2e1f1..527c39c 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -39,3 +39,8 @@ ## 兼容性与迁移 + +## 风险与回滚 + +- 主要风险: +- 回滚方式: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a3d596..114bcd7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,9 @@ on: pull_request: branches: [master] +permissions: + contents: read + jobs: lint-and-test: runs-on: ubuntu-latest diff --git a/AGENTS.md b/AGENTS.md index 2086cf2..a7bf414 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -72,73 +72,28 @@ # Codex 项目开发规则 -## Git 自动提交与 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. `main` 分支只作为稳定版本。 -2. 新增功能、修复问题、UI 调整、重构代码时,默认从 `main` 创建新分支。 -3. 分支命名格式: - - `feature/功能名` - - `fix/问题名` - - `refactor/重构名` - - `docs/文档名` - -### 四、禁止自动执行的操作 - -以下操作禁止自动执行,必须先问用户: - -1. 不要自动合并 PR 到 `main`; -2. 不要自动删除分支; -3. 不要 force push; -4. 不要覆盖用户未提交的修改; -5. 不要提交敏感信息; -6. 不要修改 GitHub 仓库权限; -7. 不要删除数据库、日志、配置文件或历史数据。 - -### 五、任务结束后必须输出 - -每次任务结束后,用中文告诉用户: - -1. 本次改了什么; -2. 修改了哪些文件; -3. 测试方式; -4. 测试结果; -5. 已创建的 commit 信息; -6. 已 push 的分支名; -7. PR 链接; -8. 下一步该做什么。 - -如果因为报错、冲突、测试失败、敏感信息风险导致无法自动 commit、push 或创建 PR,必须停止并告诉用户原因,不要硬提交。 - -## Commit 规则 - -- 每完成一个独立功能点,进行一次 Git 提交。 -- 提交说明使用中文。 -- Commit 命名格式固定为:`新增:xxx`、`修复:xxx`、`优化:xxx`、`重构:xxx`、`文档:xxx`、`配置:xxx`。 -- 不要把多个无关功能混在一个 commit 里。 -- 不要提交虚拟环境、缓存文件、日志文件、临时文件。 +## Git 与 GitHub 工作流 + +- 继承 `~/.codex/AGENTS.md` 的统一 Git 安全规则;本文件只保留 NiuMa Studio 的额外边界。 +- 修改前检查 `git status --short`、当前分支和上游,保留用户已有修改,不 reset、stash、clean、覆盖或强推。 +- 从远端真实默认分支创建 `codex/<类型>-<简短说明>`,类型使用 `feat`、`fix`、`docs`、`refactor`、`test` 或 `chore`;不得假定默认分支叫 `main`。 +- 不直接提交或推送到默认分支。已有工作无法安全隔离时停止说明。 +- 分支内允许多个有意义提交,但一个用户任务只建立一个 PR;提交信息和 PR 标题使用 Conventional Commits。 +- 只暂存明确文件路径并检查 `git diff --cached`,禁止 `git add .` 或 `git add -A`。 +- 测试、构建和敏感信息检查通过后普通 Push,并创建或更新指向真实默认分支的 PR。 +- PR 描述必须包含改动摘要、验证结果、风险和回滚说明。 +- CI 通过、分支包含最新默认分支且评论已解决后,仍须用户针对当次 PR 明确确认,才允许 Squash 合并;不得自动合并。 +- Push、PR、冲突、权限或检查失败时停止并报告,不得绕过门禁或改写历史。 + +## 任务结束后必须输出 + +1. 当前默认分支和任务分支。 +2. 本次修改文件与范围。 +3. 实际测试命令和结果。 +4. Commit 标题与 SHA。 +5. Push 后的远端 SHA。 +6. PR 链接、CI 和合并状态。 +7. 风险、回滚方式和下一步。 ## 安全规则 diff --git a/DEVELOPMENT_LOG.md b/DEVELOPMENT_LOG.md index ef3799e..2b23e07 100644 --- a/DEVELOPMENT_LOG.md +++ b/DEVELOPMENT_LOG.md @@ -1368,3 +1368,9 @@ - 强制用原始 `start_time` 后前 3 秒评价钩子,要求 15 秒内出现第一次有效刺激,并把评论动机、单一话题和完整反应闭环设为硬门槛。 - 片段以 60–90 秒为主,普通可看内容不得虚高到 78 分;本次不修改三阶段分析代码、A/B/C 门槛、候选池或历史分析结果。 - 相关选片与 Prompt 测试 `43 passed`,Ruff 和 `git diff --check` 通过;活动 SQLite 更新前已生成一致性备份,更新后 `integrity_check=ok`、外键异常为 0,其他 Prompt 与任务记录未变化。 + +## 2026-08-29 Git 与 PR 工作流统一 + +- 仓库级 Git 指令改为继承全局安全流程:从真实默认分支创建 `codex/<类型>-<说明>`,明确路径暂存,普通 Push 后创建 PR。 +- PR 必须记录验证、风险和回滚;只有 CI 通过且用户明确确认后才允许 Squash 合并。 +- CI 新增最小 `contents: read` 权限,不修改产品逻辑、数据库、发布链路或真实平台边界。 diff --git a/NEXT_STEPS.md b/NEXT_STEPS.md index 1fc8210..343292d 100644 --- a/NEXT_STEPS.md +++ b/NEXT_STEPS.md @@ -1125,3 +1125,9 @@ 2. 人工检查候选片段原始开头前 3 秒是否独立成立、15 秒内是否出现有效刺激,并优先保留 60–90 秒的完整互动回合。 3. 不要为了凑数开启普通片段;记录“不好笑、节奏拖沓、铺垫不足、内容重复”等反馈,供后续全局复审参考。 4. 连续发布 10 条后,在抖音后台与此前 10 条比较前段留存、平均观看、完播和评论表现;若无改善,再排查评分门槛、标题封面、账号分发或素材重复。 + +## 2026-08-29 Git 与 PR 流程验收 + +1. 检查规范化 PR 的 CI 是否全部通过,并确认目标分支仍是仓库真实默认分支。 +2. 用户明确确认后再 Squash 合并;未确认前保持 PR 打开,不改历史、不强推。 +3. 合并后再启用默认分支 ruleset,并让所有历史 PR 同样满足最新分支和 CI 门禁。