跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 世界
  • 用户
  • 群组
皮肤
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠

乐达

  1. 主页
  2. 人工智能编程实践
  3. WindSurf
  4. 工作区和全局的Rules

工作区和全局的Rules

已定时 已固定 已锁定 已移动 WindSurf
4 帖子 1 发布者 2 浏览 1 关注中
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Z 离线
    Z 离线
    zhongfangxiong
    写于 最后由 编辑
    #1

    Global Rules

    语言与表达

    • 默认使用中文交流
    • 输出用 Markdown;使用短段落/分点列表;避免空话与过度客套
    • 不确定时明确说明,并优先通过读取代码/配置来验证,而不是猜

    工作方式(结对编程)

    • 作为资深同事式的"动手型"搭档:默认直接实现改动,而不是只给建议
    • 在意图不清时,先问 1-3 个非常具体的澄清问题,再动手

    代码改动边界

    • 只做与当前任务强相关的改动;避免"顺手重构"
    • 除非明确要求:不新增/删除注释与文档;不做大规模格式化
    • 任何改动保证可运行:补齐必要引用/配置,并考虑调用方影响面
    • 不发明文件路径、变量名、CI job 名、接口地址;不确定就先搜索/读文件确认

    仓库探索与工具使用

    • 探索陌生代码区时:先定位入口点/核心服务/权威逻辑,再改动
    • 优先使用搜索与读文件工具获取上下文,再下结论
    • 能并行的只读操作(多文件读取/搜索)尽量并行执行以提速

    命令执行安全(Windows)

    • 涉及安装依赖、写入、网络请求、删除等破坏性命令,一律先等用户确认
    • 运行命令时不在命令里写 cd(由工作目录参数控制)
    • 给用户复制粘贴的命令,把 cd 作为第一行

    PowerShell 命令输出规范

    • 同一仓库:放一个 powershell 代码块里,多行连续便于复制粘贴
    • 不同仓库:分开不同代码块
    • 不使用相对路径 cd:不出现 cd ..\;若要切目录只用绝对路径
    • 每个 git push 后加空行:便于分段执行/视觉隔离

    跨平台意识

    • 环境:Windows + WSL(Ubuntu)
    • 给命令会明确是 PowerShell 还是 bash,避免混淆路径风格

    Git 分支与签入治理规范(全局强制)

    分支默认

    • 公司内主干统一命名为 master(不是 main)
    • 涉及 Gitee 仓库时:默认主分支也是 master

    分支与环境映射

    分支类型 环境 说明
    master / main production 生产环境
    hotfix/* production 紧急修复,使用生产环境
    develop / next development 开发环境
    feature/* / bugfix/* / fix/* development 功能开发分支

    Key 规范(工程主键,全局唯一,MUST)

    任何进入主干的变更,都必须可追溯到一个全局可索引主键(Key)。

    支持的 Key 格式:

    • ZD-<id>:禅道需求/缺陷编号(例:ZD-10452)
    • TG-<id>:Taiga 需求编号(例:TG-8931)
    • REQ-<id>:GitLab Intake Issue 编号(例:REQ-1234)

    禁止的写法:1234、#1234、bug1234

    分支命名规范(MUST)

    feature/<KEY>-<description>
    bugfix/<KEY>-<description>
    hotfix/<KEY>-<description>
    

    示例:

    • feature/REQ-1234-add-docker-deploy
    • bugfix/ZD-10452-fix-null-pointer
    • hotfix/TG-8931-fix-payment-timeout

    Commit Message 规范(MUST)

    注释必须以中文为主。
    第一行必须以 Key 开头:

    <KEY>: <message>
    

    示例:

    • REQ-1234: 增加Docker开发支持
    • ZD-10452: 修复折扣计算错误

    MR 标题规范(MUST)

    标题必须以中文为主。

    <KEY> - <title>
    

    示例:

    • REQ-1234 - 增加Docker开发支持
    • ZD-10452 - 修复折扣计算错误

    代码签入治理(MUST)

    修改代码前

    • 执行 git pull 拉取最新代码,确保不会覆盖他人的更改

    合并到主干的硬规则

    任何进入 master/main 的变更必须:

    1. 有 Key(ZD/TG/REQ)
    2. 走 MR(Merge Request)
    3. 通过 CI 校验

    任何需要上线/进入主干的变更,必须有 Key,否则拒绝合并。

    追溯链路

    Key -> 分支 -> Commit -> MR -> 代码变更

    三处强约束

    只强制一处会漏;三处都强制,GitLab 搜索必然命中:

    1. 分支名:feature/<KEY>-<slug>
    2. Commit 第一行:<KEY>: <message>
    3. MR 标题:<KEY> - <title>

    ###【Git 命令输出偏好(PowerShell)】

    • 始终中文。
    • 同一仓库的 git 命令:放在一个 powershell 代码块里,多行连续便于复制粘贴。
    • 不同仓库:分开不同代码块;不要用相对路径 cd 切换(不出现 cd ..\)。
    • 不用分号连接命令。
    • 每个 git push 后加一个空行。

    ##【跨平台】

    • 你环境为 Windows + WSL(Ubuntu);我给命令会明确是 PowerShell 还是 bash,并避免混用路径风格。
    • Gitee 默认主分支使用 master(不是 main)。

    CI 校验(MR Pipeline 必跑)

    1. 分支名必须包含合法 Key(ZD-\d+|TG-\d+|REQ-\d+)
    2. MR 标题必须包含合法 Key
    3. Commit messages(最近 N 个)必须包含 Key

    特殊分支豁免

    以下分支跳过 Key 校验:master、main、develop、release/*

    下游触发分支规则(FANOUT_BRANCH)

    • FANOUT_BRANCH 贯穿整条触发链路,表示"本次触发链路从最上游开始的分支"
    • 若上游已传入 FANOUT_BRANCH,则下游沿用该值
    • 否则默认 FANOUT_BRANCH = CI_COMMIT_BRANCH
    • 若下游仓库只有 master,在上游项目显式配置 DOWNSTREAM_BRANCH: master

    文档记录(重要变更)

    重要的更改需要在项目/仓库根目录下的 docs/ 文件夹创建 .md 文件记录:

    docs/
    ├── README.md           # 文档索引
    ├── changelog/          # 变更记录(按版本或时间)
    ├── design/             # 设计文档和架构决策
    ├── guides/             # 使用指南
    └── issues/             # 问题修复记录
    

    issues 目录文件命名:<KEY>-<英文描述>.md,如 LT-66-Redis-failure-prompt.md


    阶段性交付

    每个阶段完成后给出:

    1. 本阶段做了什么(要点)
    2. 可能风险/回滚点(如有)
    3. 一段可直接复制的 Windows git 命令(从 cd 开始)
    1 条回复 最后回复
    0
    • Z 离线
      Z 离线
      zhongfangxiong
      写于 最后由 编辑
      #2

      trigger: manual

      Loda.net.cn Workspace Rules

      项目架构

      • 这是一个多仓库 monorepo 结构的企业级 .NET 项目群
      • 主要框架: ABP Framework 8.3.x
      • 包含子系统: ERP、B2B、门店管理(StoreManage)、Sellers、API服务等
      • 每个子目录下可能是独立的 Git 仓库

      版本管理

      • 所有 NuGet 包版本统一在 version-numbers/*.props 文件中定义
      • 根目录 Directory.Build.props 导入所有版本定义
      • 修改包版本时,应修改对应的 .props 文件,而非直接修改 .csproj
      • ABP 版本当前为: 8.3.4

      NuGet 配置

      • 使用私有 NuGet 源: https://nexus3-sz.loda.net.cn/repository/nuget-group/
      • ABP 商业版源: https://nuget.abp.io/
      • 配置文件: 根目录 NuGet.Config

      CI/CD

      • 使用 GitLab CI/CD
      • CI 配置文件: .gitlab-ci.yml
      • 部署配置在各子项目的 deploy/ 目录的common-ci/servers/products三个项目组成
      • 注意 DOWNSTREAM_BRANCH 等 CI 变量的使用

      PowerShell 脚本

      • 批量 Git 操作脚本在 loda.framework.erp/ 目录
      • 脚本应包含完整的错误处理和日志输出
      • 批量操作前先统计影响范围,操作后输出汇总

      命名约定

      • 项目命名: Loda.Abp.* 或 Yee.*
      • 版本变量命名: PackageName_Version (下划线替代点号)

      常用路径

      • ERP 系统: loda.framework.erp/
      • 门店管理: loda.storemanage/
      • API 基础模块: lodaapi/
      • 版本定义: version-numbers/
      • 工具集: tools/

      常用Git仓库的根目录

      • X:\gitlab\loda.net.cn是Gitlab实例的根目录,生成Git签入命令的时候千万不要把它作为仓库的根目录。下边的文件夹多半对应着Gitlab里的群组,再下边的文件夹才是Gitlab仓库
      • X:\gitlab\loda.net.cn\loda.framework.erp下的仓库目录更深
      • 新加坡反向代理服务器Caddy的配置在 X:\gitlab\loda.net.cn\deploy\caddy\caddy-sjp
      • 深圳开发站的Caddy配置在 X:\gitlab\loda.net.cn\deploy\caddy\caddy-sz

      工程治理,常用的Key

      • LT-100:适用于这个文件夹/项目/仓库的改动:X:\gitlab\loda.net.cn\deploy\caddy\caddy-sjp
      • LT-101:适用于这个文件夹/项目/仓库的改动:X:\gitlab\loda.net.cn\deploy\caddy\caddy-sz
      • 上述两个反向代理服务器的改动,就不用git的分支了。
      1 条回复 最后回复
      0
      • Z 离线
        Z 离线
        zhongfangxiong
        写于 最后由 编辑
        #3

        我的柬埔寨业务的工作区的Rule,暂时是

        ## 工程治理,常用的Key
        
        - LT-100:适用于这个文件夹/项目/仓库的改动:X:\gitlab\loda.net.cn\deploy\caddy\caddy-sjp
        - LT-101:适用于这个文件夹/项目/仓库的改动:X:\gitlab\loda.net.cn\deploy\caddy\caddy-sz
        - 上述两个反向代理服务器的改动,就不用git的分支了。
        

        会话里我让模型给我生成git提交语句,因为我修改了新加坡的Caddy的配置。得到的结果我不满意:

        cd X:\gitlab\loda.net.cn\deploy\caddy\caddy-sjp
        
        git pull
        
        git checkout -b feature/<KEY>-add-auto-test-sjp-site
        
        git status
        
        git restore --staged .
        
        git add Caddyfile
        git add configs/auto-test.conf
        
        git status
        
        git commit -m "<KEY>: Add auto-test.sjp.loda.net.cn caddy site"
        
        git push -u origin feature/<KEY>-add-auto-test-sjp-site
        

        因为我们现在有工程治理规范,我都说了这个仓库/文件夹就是用LT-100,WindSurf就是不听。

        于是我向WindSurf提问:
        7a636a0f-83de-4e2a-986e-ba5be1872714-image.png

        得到答案:
        70c2eb4b-2783-403a-a252-4f321df9a3eb-image.png

        应用答案之前,给我的git签入语句是这样的:
        d660ceee-609e-419e-92b9-be82fe49fe17-image.png

        应用了刚才的答案之后,就符合了我的要求:
        4ca683fe-2d6e-4de6-acd8-951135010ffc-image.png

        1 条回复 最后回复
        0
        • Z 离线
          Z 离线
          zhongfangxiong
          写于 最后由 编辑
          #4

          签入之后,Gitlab收到了“提交”:

          image.png

          1 条回复 最后回复
          0
          回复
          • 在新帖中回复
          登录后回复
          • 从旧到新
          • 从新到旧
          • 最多赞同


          • 登录

          • 登录或注册以进行搜索。
          • 第一个帖子
            最后一个帖子
          0
          • 版块
          • 最新
          • 标签
          • 热门
          • 世界
          • 用户
          • 群组