local_private_config.md 8.0 KB

本地私有配置

最高优先级配置(权重: 100),作用于当前工作环境。所有 AI 行为以此文件为准,覆盖 L1/L2 配置。

设计原则:本文件只定义本地开发环境的偏好个人工作流习惯。 安全红线、技术规范、编码规范等已在 L1/L2 中定义,此处不重复。


一、工作行为规范

以下规则已由 rules/always-on-rule.md 系统自动注入,此处仅保留项目级补充说明。L3 中不重复定义已被 Rules 覆盖的内容。

代码输出

  1. 始终跟随项目现有风格:先阅读相邻文件了解命名约定、导入方式、框架选择

任务执行

  1. 不在计划中规划测试动作,测试按需执行

沟通

  1. 代码注释语言与用户保持一致

二、本地开发环境偏好

开发服务器

  • 前端 dev server 默认端口:5173(Vite 默认),如被占用则自动递增
  • 后端默认端口:8080(Spring Boot 默认)
  • API 代理:前端通过 Vite proxy 或环境变量 VITE_API_BASE_URL 转发到后端

调试偏好

  • 遇到错误时:先看控制台/日志 → 再分析代码
  • 排错顺序:
    • 后端:查看 Spring Boot 控制台堆栈 → 检查 SQL / 参数 → 检查配置
    • 前端:浏览器控制台 → Network 面板检查请求 → Vue DevTools 检查状态
    • 样式问题:元素选中 → 盒模型 → 层叠上下文 → 继承 → 特异性
  • 日志级别:本地开发建议后端开启 DEBUG 级别便于排查

环境变量(本地)


三、个人编码习惯微调(临时覆盖 L1/L2)

以下为个人的、可能随项目或时间变化的偏好。当这些与 L1/L2 冲突时以本文件为准。

代码风格

偏好 说明
代码紧凑度 偏好适度紧凑,不追求过度拆分(L1 说 ≤50 行函数,本地可适当放宽)
import 整理 保存文件时自动整理 import 顺序(如 IDE 配置了 auto import)
尾逗号 对象/数组末尾保留尾逗号(方便 git diff)

Vue 3 特定偏好

偏好 说明
ref vs reactive 简单类型用 ref,对象用 reactive,不强制统一
样式方案 项目未规定时,优先 <style scoped lang="less">
组件内顺序 template → script setup → style(Vue SFC 标准顺序)

Java 特定偏好

偏好 说明
Lombok 使用 允许使用 @Data / @Builder / @Slf4j 等注解减少样板代码
日志占位符 使用 {} 占位符而非字符串拼接:log.info("用户 {} 登录", userId)
Optional 返回值允许使用 Optional<T>,禁止在字段上使用

TypeScript 类型严格度

场景 偏好
any ❌ 禁止(用 unknown + 类型守卫替代)
@ts-ignore ❌ 禁止(用 @ts-expect-error 并说明原因)
as any ❌ 禁止
类型导出 ✅ 导出未使用的类型(tree-shaking 友好,且对 IDE 提示有帮助)

四、常用快捷操作映射

前端(pnpm + Vite)

pnpm dev          # 启动前端
pnpm build        # 构建
pnpm lint         # ESLint
pnpm typecheck    # TS 检查

后端(Maven)

mvn spring-boot:run     # 启动后端
mvn compile             # 编译检查
mvn test                # 跑单测

Docker

docker compose up -d    # 启动中间件
docker compose logs -f   # 查看日志
docker compose down      # 停止

Windows 终端 UTF-8(Maven / Node 日志中文乱码)

  • 现象:PowerShell / CMD 里 mvnnpm 打印中文成乱码。
  • 常见根因:控制台代码页为 936(GBK),进程按 UTF-8 写 stdout。
  • 推荐:项目根若存在 scripts/restart-dev.ps1,优先用它启动(已含 chcp 65001 与控制台编码设置);否则在当前会话先执行:

    chcp 65001 | Out-Null
    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
    $OutputEncoding = [Console]::OutputEncoding
    $env:MAVEN_OPTS = '-Dfile.encoding=UTF-8'
    
  • 系统级:Windows「设置 → 时间和语言 → 语言和区域 → 管理语言设置 → 更改系统区域设置」可勾选 Beta:使用 Unicode UTF-8 提供全球语言支持(视环境兼容性启用);或使用 Windows Terminal 并选用 UTF-8 字体。

AI 执行完代码变更后:

  • 前端改动 → 自动运行 lint + typecheck
  • 后端改动 → 自动运行 compile 确认编译通过
  • 不需要每次都跑完整 test suite(除非涉及逻辑修改)

五、用户习惯记录

重要:本节记录用户在使用过程中告诉 AI 的规则、偏好和纠正。AI 应在每次对话开始时读取此节,并随着用户反馈持续更新。

更新规则

  • 用户明确说"记住这个""以后都这样"时,必须更新本节
  • 用户纠正 AI 行为时,记录纠正内容
  • 每条记录包含:日期、场景、规则、来源(用户原话或推断)

5.1 编码习惯

5.2 沟通习惯

5.3 工作流习惯

5.4 项目特定习惯

5.5 禁止行为补充


六、与 L1/L2 的关系

公司统一配置 (L1, 权重25)  ← 安全红线、技术规范、编码规范
    ↓ 被覆盖
仓库共享配置 (L2, 权重75)  ← 项目技术栈、架构约定
    ↓ 被覆盖
本地私有配置 (L3, 权重100)  ← 本文件(行为规范、浏览器规则、本地环境、个人习惯)

本文件的独特价值(L1/L2 不包含的内容)

内容 为什么只在 L3
是否添加注释 / 创建文档 个人当前工作偏好(基础规则已由 rules/ 注入)
本地开发端口、代理配置 仅本机有效
调试排错的个人习惯顺序 个人经验积累
代码紧凑度的临时放宽 “我现在想写得快一点”
Lombok 使用等有争议的编码风格 团队可能有分歧,个人选择
常用命令快捷映射 个人肌肉记忆
用户习惯记录(持续学习) 个人与 AI 的交互积累

不应出现在本文件中的内容(已在 L1/L2 定义)

内容 应归属
安全红线(禁止硬编码密钥等) L1 §一
Git Commit 格式 / 分支命名 L1 §四
技术选型原则和偏好 L1 §二
各语言命名规范 / 分层架构 L1 language/
构建命令 L2 §三
项目技术栈约定 L2 §一
PR/MR 项目级补充要求 L2 §四

最后更新:2026-05-15 版本:5.0.1(§四 增补 Windows 终端 UTF-8 / 中文乱码处置)