dev-manager-tauri/src-tauri/resources/onboarding/git-workflow.md.tmpl
lanrtop 05d7673990 feat(onboarding): T2+B3 复杂度感知分支策略 + agent 按钮载体声明体系
T2 git-workflow 模板升 v1.3.0:
- 分支策略从强制 dev→main 改为复杂度感知
  (简单改动直推 main/master,功能性改动开 feat/<name> 分支+PR)
- PR 创建 MCP 示例 head 从 "dev" 改为 "feat/<name>"

B3 agent 按钮载体声明闭环:
- CONVENTIONS.md manifest.yaml 规范新增 agent_button_carrier 字段
  (tauri/http/cli/playwright,新建蓝图时必填)
- splitter SKILL.md 三级优先载体继承:manifest字段 > architect声明 > 就近推断
- 炼境自身 manifest.yaml 补 agent_button_carrier: tauri
- AGENTS.md.tmpl 项目概况 TODO 提示新增载体字段填写指引

Rules-Applied: R04,R13
2026-07-04 13:44:02 +09:00

102 lines
3.5 KiB
Cheetah
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Git 工作流 — AI Agent 操作指南
> 把此文件粘贴给任何 AI Agent让它了解本项目的 git 工作方式。由炼境接入包分发。
> `ONBOARDING_MANAGED` 标记块由炼境版本化管理(重跑接入包可原位升级),块外可自由补充项目特有约定。
<!-- ONBOARDING_MANAGED_START version="1.3.0" -->
## 分支策略(复杂度感知)
```
main/master ← 主分支,保持稳定
├── 简单改动 → 直接 push main/master
└── 功能性改动 → feat/<name> 分支 → PR → main/master
```
**简单改动(直接推主分支)**bug fix、chore、docs、style、单文件小改行为对外无变化。
**功能性改动(开 feat/* 分支 + PR**:新功能、重构、涉及多模块的 refactor。由 agent 根据改动文件数和性质自判,无需蓝图标签。
分支命名:`feat/<功能简述>`,如 `feat/login-sms`、`feat/order-pagination`。
## Commit 规范lefthook 强制)
格式:`<type>(<scope>): <描述>`
| type | 用途 |
|------|------|
| `feat` | 新功能 |
| `fix` | Bug 修复 |
| `chore` | 配置、依赖、脚本 |
| `docs` | 文档 |
| `refactor` | 重构(不改功能) |
| `ci` | CI 配置 |
| `perf` | 性能优化 |
| `style` | 代码格式 |
| `test` | 测试 |
`scope` 用「模块/子模块」二级结构(如 `auth/login`、`api/user`、`db/order`),对应项目功能模块。
```bash
git commit -m "feat(auth/login): 新增手机号登录"
git commit -m "fix(api/user): 修正分页 off-by-one"
```
> 炼境会解析这些 commit 的 type/scope 作为飞轮数据:`fix` 计入返工率、`scope` 归到模块。
> **commit 写得越规范,飞轮数据越准。**
## Rules-Applied trailer规则命中回传
若本次任务中触发过 CONVENTIONS 自动推荐规则R01-R11见 `.blueprint/CONVENTIONS.md` 规则列表),
在 commit message 末尾追加一行 trailer与正文空行分隔
```
feat(auth/login): 新增手机号登录
Rules-Applied: R01,R05
```
- 只记录**真实触发**(主动检查或执行)的规则,未触发则整行省略
- 炼境自动解析此 trailer 做「规则命中 × 返工」交叉统计,是 CONVENTIONS 置信度进化的数据来源
- 凭空罗列会污染数据——宁缺毋滥
## 一个 commit = 一件独立的事
不要 `git add -A` 一次提交所有。按功能分批:
```bash
git add <相关文件>
git commit -m "feat(模块): 一件事"
```
## PR 大小控制
PR 别攒太大(建议每 3~5 个 commit 或几百行内就开一次),否则 CI code review 易超时失效。
「所有检测通过」≠ 代码被审查过——大 PR 即使 CI 全绿review 可能已静默失效。
## PR 创建(炼境托管项目)
本项目由炼境管理MCP 已注入且 `.claude/liangjing.json` 含 `project_id`。
**推送分支后,通过炼境 MCP 创建 PR禁止用 curl + git credential fill 提取 token**
```
1. Read .claude/liangjing.json → 取出 project_id
2. 调用 MCP 工具 create_pull_request
{ "project_id": "<id>", "head": "feat/<name>", "base": "main",
"title": "<Conventional Commits 格式>", "body": "<变更摘要>" }
3. 炼境内部用存储的 Gitea 凭证调 API返回 pr_url
```
若炼境未运行MCP 不可用),降级方案:去 Gitea 网页手动创建 PR。
## 常用命令
```bash
git status --short
git log --oneline -10
git reset --soft HEAD~1 # 撤销最后一次 commit保留改动
```
<!-- ONBOARDING_MANAGED_END -->