dev-manager-tauri/docs/ai-context/git-workflow.md
lanrtop bce9a0a37c
All checks were successful
Push & PR Check / check (push) Successful in 1m18s
fix(mcp-inject): liangjing.json 改为合并写入,重注入可回填缺失的 group_id
旧版注入的项目 liangjing.json 缺 group_id,外部 agent 每个会话都要
先调 list_all_projects 反查归属组(多一次探路调用 + 权限弹框)。
group_id 写入已在 2116e54 补上,本次将整文件覆盖改为读取-合并-写回:
只更新 project_id / group_id / mcp_port 三个字段,保留文件已有其他字段。
存量修复路径:对旧项目重新执行 inject_mcp 即可回填。
文档同步说明:移入新产品组时自动刷新;group_id 缺失/过期时重新注入。
2026-07-06 18:43:44 +09:00

3.8 KiB
Raw Blame History

Git 工作流 — AI Agent 操作指南

把此文件粘贴给任何 AI Agent让它了解本项目的 git 工作方式。由炼境接入包分发。 ONBOARDING_MANAGED 标记块由炼境版本化管理(重跑接入包可原位升级),块外可自由补充项目特有约定。

分支策略(复杂度感知)

main/master  ← 主分支,保持稳定
    ↑
    ├── 简单改动 → 直接 push main/master
    └── 功能性改动 → feat/<name> 分支 → PR → main/master

简单改动(直接推主分支)bug fix、chore、docs、style、单文件小改行为对外无变化。

功能性改动(开 feat/ 分支 + PR*:新功能、重构、涉及多模块的 refactor。由 agent 根据改动文件数和性质自判,无需蓝图标签。

分支命名:feat/<功能简述>,如 feat/login-smsfeat/order-pagination

Commit 规范lefthook 强制)

格式:<type>(<scope>): <描述>

type 用途
feat 新功能
fix Bug 修复
chore 配置、依赖、脚本
docs 文档
refactor 重构(不改功能)
ci CI 配置
perf 性能优化
style 代码格式
test 测试

scope 用「模块/子模块」二级结构(如 auth/loginapi/userdb/order),对应项目功能模块。

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 一次提交所有。按功能分批:

git add <相关文件>
git commit -m "feat(模块): 一件事"

PR 大小控制

PR 别攒太大(建议每 3~5 个 commit 或几百行内就开一次),否则 CI code review 易超时失效。 「所有检测通过」≠ 代码被审查过——大 PR 即使 CI 全绿review 可能已静默失效。

PR 创建(炼境托管项目)

本项目由炼境管理MCP 已注入且 .claude/liangjing.jsonproject_idgroup_id group_id 用于定位本项目对应的 MCP 服务器 lian-jing-{group_id})。 注意:该文件在注入时生成快照——项目移入新产品组时炼境会自动刷新;若发现 group_id 缺失或过期,在炼境重新执行「注入 MCP」或调 MCP 工具 inject_mcp)即可回填。

推送分支后,通过炼境 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。

常用命令

git status --short
git log --oneline -10
git reset --soft HEAD~1   # 撤销最后一次 commit保留改动