883 字
4 分钟
Qmai 项目识别:先判断项目角色,再选择规则
系列 · Qmai Agent Center
第 3 / 9 篇
项目识别回答一个基础问题:当前工作区到底是不是 Qmai 国际前端项目?如果是,它属于哪类系统?
只有先回答这个问题,后面的规则和 playbook 才有意义。
三步判断法
找到项目根目录 -> 判断是否命中 Qmai 信号 -> 判断系统角色和仓库职责1. 找到当前项目根目录
AI 进入项目后,先从当前目录向上找最近的 package.json。
如果一个工作区里有多个项目,就根据用户提供的文件、路由、需求关键词,定位最相关的项目。
如果无法确定项目根目录,需要说明缺少上下文,而不是继续猜。
2. 判断是否是 Qmai 项目
命中以下任意强信号,可以按 Qmai 项目处理:
| 信号 | 说明 |
|---|---|
scripts 中出现 qmai build、qmai format、qmai deploy 等命令 | 构建链路属于 Qmai 体系 |
依赖中出现 @qmai/* | 使用 Qmai 组件或工程能力 |
出现 eslint-plugin-qmai | 使用 Qmai 代码规范 |
依赖别名中出现 npm:@qmai/* | 通过别名引入 Qmai 包 |
目录名或包名里出现 qmai、qimai 只能作为辅助信号,不能作为唯一依据。
如果完全没有命中 Qmai 信号,就按当前项目自己的 README、配置和代码风格处理,不强行套用 Qmai 规则。
3. 判断系统角色
Qmai 国际前端里,不同系统角色有不同处理方式。
| 系统角色 | 常见信号 | 典型职责 |
|---|---|---|
| qiankun 基座 | 依赖 qiankun,涉及登录、菜单、头部、容器、微应用注册 | console-vue-international |
| 普通业务子应用 | Vue2、业务路由、业务页面、子应用生命周期 | 多数 *-vue-international |
| 公共业务页 | /commonCenter/、公共配置、打印模板 | common-vue-international |
| 共享组件库 | 包名或源码指向 vue-kylin | vue-kylin-international |
| 打印项目 | 打印插件、桥接、国际打印代码、打印通用入口 | operation |
| 装修平台 | Vue3 装修主工程或装修组件库 | design-vue-3-international、design-v0-international |
*-vue-international 必须查职责清单
当目标可能是某个 *-vue-international 仓库时,不能只靠仓库名猜。
必须先查“国际 Vue 仓库职责清单”,它会说明:
- 每个仓库的一句话职责。
- 哪些需求优先改这个仓库。
- 关键模块和路由线索。
- 容易混淆的边界。
例如:
| 需求关键词 | 优先判断 |
|---|---|
| 菜单、登录、容器、微应用挂载 | console-vue-international |
| 公共配置、公共打印模板、硬件、KDS 公共配置 | common-vue-international |
| 商品、SKU、分类、配方、商品库存 | goods-vue-international |
| 餐饮订单、外卖、堂食、排队、桌台、KDS | catering-vue-international |
| 会员、积分、等级、会员画像 | member-vue-international |
| 传统 BI 报表 | bi-vue-international |
| 自助 BI、数据集、数据源、工作空间 | qmbi-vue-international |
完整职责不要在项目识别页重复维护,应回到仓库职责清单。
Vite 不是优先判断依据
如果仓库里还存在 vite.config.*,通常按历史遗留或兼容配置读取。
国际前端当前开发和验证优先看仓库自己的 package.json scripts,通常是 rsbuild 或 qmai 构建链路。
输出结果应该包含什么
AI 完成项目识别后,应能说清楚:
- 当前项目是否命中 Qmai 信号。
- 当前项目更像哪类系统角色。
- 目标仓库判断的证据是什么。
- 是否需要联查基座、组件库、公共页或打印项目。
- 当前工作区缺少哪些跨仓上下文。
项目识别不是为了“多读文件”,而是为了让后续修改落在正确边界内。
Qmai 项目识别:先判断项目角色,再选择规则
https://blog.961121.xyz/posts/project-detection/