新增 g3fo-nacos-config 目录下的 SKILL.md 文档,详细说明 nacos_config 目录的结构、用户交互流程及配置文件的添加与修改规则。新增 yml-placement.md 文件,提供常见顶级键的插入顺序,以保持配置文件风格一致。
4.1 KiB
4.1 KiB
name, description
| name | description |
|---|---|
| g3fo-nacos-config | 分析并修改 g3fo-db/当前工作区下 nacos_config 目录中的配置。若当前项目没有 nacos_config 则提示用户打开 g3fo-db 或提供 g3fo-db 路径。支持添加、修改 yml 配置及添加配置注释;需引导用户确认「场」与「单个配置文件」;当添加/修改位置不确定时必须先与用户确认再执行;在合适位置、正确缩进下编辑。 |
nacos_config 分析与修改
目录结构
- 根路径:当前工作区根目录下的
nacos_config;若不存在则要求用户打开 g3fo-db 或提供 g3fo-db 的明确路径。 - 场(site):
nacos_config/{site_name}/,每个子目录为一个场(如 afe_ap、dev_200、uat_226、vn-demo 等)。场列表通过列出nacos_config子目录动态得到,不写死。 - 配置文件:每场下多为 yml,常见有
common.yml、dubbo.yml、mysql.yml、redis.yml、rocketmq.yml以及各服务g3fo-*-dev.yml等。
用户交互流程(必须按顺序执行)
0. 确认 nacos_config 所在位置
- 先检查当前工作区根目录下是否存在
nacos_config。 - 若不存在:提示「当前项目下未找到
nacos_config目录」,引导用户二选一:- 请先打开 g3fo-db 项目再操作,或
- 提供 g3fo-db 项目的明确路径(后续操作基于该路径下的
nacos_config)。
- 在用户完成其一之前不执行任何配置编辑。
- 若存在或用户已提供路径,继续下一步。
1. 确定要修改的场
- 若用户未明确要改哪个场:反问用户,并列出(当前工作区或用户提供的 g3fo-db 路径下的)
nacos_config下所有子目录(即所有场),引导用户选择一个或多个场,或选择「全部场」。 - 若用户已明确指定场,则直接使用。
2. 确定要修改的配置文件
- 若用户未指定配置文件,或指定了多个:引导用户确认仅一个配置文件(如
common.yml、dubbo.yml等)。 - 若用户已明确指定一个配置文件,则直接使用。
3. 确定添加/修改位置(必须遵守)
- 当不确定要把新配置加在哪个位置、或要改哪一处时:必须先与用户确认(列出可选位置或给出建议,等用户选定),再执行编辑;不得在位置模糊时自行猜测并修改。
4. 执行修改
在选定的每个「场」下,对选定的配置文件进行编辑:
- 添加:根据要添加的 key 路径(如
dubbo.application.metadata-service-port)在文件中找合适位置——若已有同名顶级块(如dubbo)则合并到该块下并保持 2 空格缩进;若无则新增顶级块,放在与现有顶级键风格一致的位置。位置不明确时先与用户确认再执行。 - 修改:若 key 已存在,则只改值并保持原有缩进与注释风格;若存在多处或歧义,先与用户确认再执行。
- 添加配置的注释:在指定 key 上方或行尾添加注释,风格与文件内现有注释一致;位置不明确时先与用户确认再执行。
YAML 规则:一律 2 空格缩进;新加块与现有同级键对齐;不破坏现有注释与键顺序。若文件中已有 dubbo 块,新 dubbo 相关项应合并到该块下,避免重复顶级 dubbo。插入新顶级块时的常见顺序可参考 references/yml-placement.md。
示例
在 common.yml 中添加 dubbo 配置
若 common.yml 中尚无顶级 dubbo,可新增顶级块(与 server、spring 等同级),例如:
dubbo:
application:
metadata-service-port: 28101
若 common.yml 或目标文件中已有 dubbo: 块,则将 metadata-service-port 合并到 dubbo.application 下,保持 2 空格缩进,不新增重复的 dubbo: 顶级键。
约定摘要
- 路径:优先用当前工作区的
nacos_config;没有则要求用户打开 g3fo-db 或提供 g3fo-db 路径。 - 确认优先:添加/修改/注释的目标位置一旦不确定,必须先与用户确认再执行,不得自行猜测。