业务模块前端代码一键生成

SKILL开发

原名 pacp-coding-frontend

开发 未标注权限 许可证不明确
安装这个技能

输入业务模块规格文件路径,即可输出该模块的Vue3组件、API封装、路由与列表详情页等前端文件,适合按规格快速搭建模块前端骨架。

一句话选型结论

按资料字段整理

业务模块前端代码一键生成是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_aeb36e80/pacp-coding-frontend
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_aeb36e80仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量35.2 KBSKILL.md 原文大小,越大说明说明书写得越细

能做什么

0 项能力
上游给出的能力概览与适用场景
生成Vue模块前端代码生成列表详情页面批量输出API与路由

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
业务模块前端代码一键生成当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

35.2 KB
模型实际读到的说明书原文,来自技能仓库

PACP 模块前端代码生成子agent(pacp-coding-frontend)

你是顶级前端工程师。本技能是 PACP 前端代码生成的子agent执行者,由 pacp-spec 调用,负责生成一个业务-模块的完整前端代码(Vue3 组件 + API 封装 + 路由)。后端代码(SQL/Java/JUnit)由姊妹技能 pacp-coding-backend 生成。
你会得到:列表页(${entity}-list.vue)+ 详情页(${entity}-detail.vue)+ API 封装(${entity}.js)+ 路由配置。

> 技能族定位:原全栈技能 pacp-coding(SQL+Java+Vue+JUnit 一体)在 v2.1 拆分为 pacp-coding-backend(后端)+ 本技能(前端)。pacp-coding(v3.0)现为单模块快速生成的协调者(解析意图→构建临时规格→调用 pacp-coding-backend 与本技能),面向简单业务/单模块场景,不直接生成代码。

核心职责

职责 说明 产出
接收模块规格 读取 pacp-spec 生成的模块规格文件 modules/{所属业务}.{功能模块}.spec.md
模块级生成 生成模块路由 router.js
实体级生成 为每个实体生成列表页、详情页、API文件 ${entity}-list.vue、${entity}-detail.vue、${entity}.js
代码组织 按固定两段路径组织代码 {所属业务}/{功能模块}
遵循PACP规范 技术栈基线见 Skill(pacp-rules, args="tech-stack-baseline") @bovo-vue/platform + @bovo-vue/pacp-components

触发场景

> 依赖关系:pacp-coding-frontend 依赖 pacp-rules(规则查询)。可独立运行(caller=standalone),也可作为子技能被 pacp-spec/pacp-coding 调用。

调用方 场景 参数格式 输出目录
pacp-spec 复杂业务(多模块、原型解析、依赖排序) {spec_file_path}#{backend_project_dir}#{frontend_project_dir}#{database_type}#caller=pacp-spec 前端项目目录
pacp-coding 简单业务/单模块(临时规格、即时生成) {spec_file_path}#{backend_project_dir}#{frontend_project_dir}#{database_type}#caller=pacp-coding 前端项目目录
用户单点调用 只要前端 {spec_file_path}#{backend_project_dir}#{frontend_project_dir}#{database_type}#caller=standalone 前端项目目录

> 🔴 分隔符规则:# 为参数分隔符。若路径中包含 # 字符,须用 \# 转义(解析时 \# → #)。建议项目目录避免使用 # 字符。

输出目录结构:
- src/views/:Vue 组件
- src/api/:API 封装
- src/router/:路由配置

执行流程

Step 阶段 主要任务 关键输出
1 读取模块规格 提取模块元信息、实体清单、字段规格表、功能矩阵、布局清单、占位符映射表 规格解析结果
2 模块级代码生成 生成模块路由 src/router/{所属业务}/{功能模块}.js
3 实体级代码生成 为每个实体生成列表页、详情页、API文件 ${entity}-list.vue、${entity}-detail.vue、${entity}.js
4 代码组织 按固定两段路径组织代码 完整目录结构
5 代码审核 规范审核、一致性对照 审核报告

详细执行步骤

Step 1:读取模块规格文件

提取内容 说明 用途
模块元信息 模块名、中文名、所属业务 确定代码组织路径
实体清单 该模块包含哪些实体 确定生成范围
字段规格表 每个实体的字段(含表单组件列) 组件选型、表单生成
功能矩阵 每个实体的功能(查询/新增/编辑/删除/导入/导出/详情) 按钮生成、API函数生成
布局清单 每个实体的页面布局(搜索区/按钮区/表格区/表单字段区) 前端生成的核心输入
占位符映射表 6个标准占位符 + ${Module} 路由函数前缀 路径替换、接口生成

1.1 模块路径与占位符

> 🔴 权威说明:前端模块路径与接口契约的详细规范以 pacp-rules 为准。遇到任何占位符疑问,一律查询 Skill(pacp-rules, args="system-module-path"),禁止凭记忆改写。

核心占位符(生成时必查 Skill(pacp-rules, args="system-module-path 占位符")):

占位符 含义 示例值
${MODULE} 功能模块名 hjkq
${ENTITY} 实体名 PascalCase Station
${entity} 实体名小写 station
${Module} 路由函数前缀 Hjkq
${ENTITY_CN} 中文名 站点信息
${TABLE} 表名 T_HJ_HJKQ_ZDXX
${PK} 主键字段名 XH
${PK_LIST} 批量操作参数名 XHList

前端路径规则:路径固定两段 {所属业务}/{功能模块},如 /hjkq/station/station-list。

1.2 接口契约(与后端对齐)

> 🔴 前端接口契约的完整规范见 Skill(pacp-rules, args="system-module-path 接口契约")。生成时必查(见 🔴 1.1 权威说明)。
>
> 🔴 故障排查:接口相关故障(404、参数丢失、批量删除失败等)详见 Skill(pacp-rules, args="frontend-troubleshoot")。

1.3 规格字段校验(🔴 进入 Step 2 前执行)

> 读取规格文件后,在进入代码生成前校验规格完整性,避免因规格缺失导致生成错误。

校验内容:

校验项 检查方法 不通过时处理
字段规格表 表单组件 列为空的比例 遍历所有实体字段,统计空值数/总数 空值比例 > 30% 时触发 CHECKPOINT:向用户确认组件选型
字段规格表 关联关系/数据来源 列中字典字段是否标注了 字典:{代码集编号} Grep 字典: 在关联关系列 未标注的字典字段标记为 CHECKPOINT 待确认
布局清单的页面类型是否在骨架支持范围内 检查 list/tree-list/list-tab 不支持的页面类型触发 CHECKPOINT
占位符映射表是否包含所有 8 个标准占位符 核对 ${MODULE}/${Module}/${ENTITY}/${entity}/${ENTITY_CN}/${TABLE}/${PK}/${PK_LIST} 缺失的占位符记录到 manifest 备注,生成时用默认值

Step 2:模块级代码生成

产出文件 说明 骨架文件
模块路由 注册该模块所有实体的路由,导出 get${Module}RouterConfig() @@/skeletons/frontend/router.js-tpl.md
路由路径 /{所属业务}/{功能模块}/{entity}-list /hjkq/station/station-list

Step 3:实体级代码生成

3.1 列表页(${entity}-list.vue)

页面类型 说明 骨架文件
list 标准列表:搜索区+表格+分页 @@/skeletons/frontend/list.vue-tpl.md
tree-list 左树右列表:分类/层级树过滤 @@/skeletons/variants/tree-list.vue-tpl.md
list-tab 左列表右 Tab:选中行看多维详情 @@/skeletons/variants/list-tab.vue-tpl.md

生成方式:
0. 🔴 生成前必读:先阅读本章「❌ 禁止清单」的 13 条禁止项,确保即将生成的代码不违反任何一条。每生成一个 Vue 文件后,按禁止清单的「自检 Grep」列逐条扫描。
1. 🔴 字段全覆盖:遍历字段规格表的每一行,字段规格表中的每个字段都必须在页面中有一个对应的渲染组件(列表页在表格列中展示、详情页在表单中展示、搜索区在搜索条件中展示)。审计字段(CJR/CJSJ/XGR/XGSJ/SFSC)在列表页显示、在详情页隐藏。遗漏字段直接导致功能缺失。
2. 提取布局清单:从规格文件的"布局清单"章节读取页面类型、搜索区字段清单、表格列配置、操作按钮清单
3. 逐字段渲染:对搜索字段按清单顺序逐个生成 <el-col> + 表单组件;对表格列按列配置生成 <BtTableColumn>;对操作按钮按类型生成
4. 优先级顺序:原型实际布局 > 平台规范约束 > 骨架模板参考
5. 🔴 字典字段渲染(列表组件=enum):当字段规格表的 列表组件 列为 enum 时,该字段为字典映射字段,列表不得直接渲染原始代码值,必须按以下规则处理:
- 在 <script setup> 中 import { queryCommonCodes } from '@bovo-vue/utils/pacp'
- 为每个字典字段生成 const dictMap_{字段名} = ref({}) 响应式字典映射
- 生成 loadDictData 函数,调用 queryCommonCodes({ DMJBH: '{代码集编号}' }) 获取字典数据,构建 DM → DMMC 映射
- 表格列使用插槽模板渲染:{{ dictMap_{字段名}[row.{字段名}] || row.{字段名} }}
- 在初始化时先调用 loadDictData() 再调用 loadData()
- 代码集编号从字段规格表的 关联关系/数据来源 列(字典:{代码集编号})确定

  1. 🔴 字典字段组件选型规则:BvCommonCode(setCode)vs Bv*ForCodes(dmjbh):字典字段在表单区和搜索区使用组件时,必须分清两个组件系列及其对应的属性,禁止混淆:
组件系列 代表组件 代码集编号属性 适用场景 说明
BvCommonCode(统一封装) BvCommonCode setCode="{代码集编号}" 表单/搜索中需要动态切换控件形态(通过 controlType 在 select/radio/checkbox/tag 间切换) 一个组件通过 controlType 属性切换形态,适合不确定原型形态的场景
Bv*ForCodes(按形态独立) BvSelectForCodes / BvRadioForCodes / BvCheckboxForCodes / BvTagForCodes / BvCascaderForCodes / BvTreeForCodes / BvTreeSelectForCodes dmjbh="{代码集编号}" 表单中原型形态明确的场景(下拉框→BvSelectForCodes、单选→BvRadioForCodes、多选→BvCheckboxForCodes、标签→BvTagForCodes、级联→BvCascaderForCodes、树→BvTreeForCodes/BvTreeSelectForCodes) 每个组件对应一种控件形态,按原型实际形态选型

🔴 选型规则(按优先级):
- ① 字段规格表 表单组件 列已标注具体组件(如 BvCommonCode/BvSelectForCodes)→ 严格按标注,不得自行更换
- ② 字段规格表 表单组件 列标注了 BvCommonCode(字典) 但未指定具体系列 → 按原型形态选:
- 原型为下拉框 → BvSelectForCodes(dmjbh)
- 原型为单选框 → BvRadioForCodes(dmjbh)
- 原型为多选框 → BvCheckboxForCodes(dmjbh)
- 原型为标签 → BvTagForCodes(dmjbh)
- 原型为级联选择 → BvCascaderForCodes(dmjbh)
- 原型为树形选择 → BvTreeForCodes / BvTreeSelectForCodes(dmjbh)
- 原型不明确(纯文字需求)→ BvCommonCode(setCode,默认 controlType="select")
- ③ 字段规格表 表单组件 列未标注(空值)→ 查 Skill(pacp-rules, args="frontend-component-mapping 字段语义") 按字段语义绑定

🔴 prop 对照表(禁止混用,否则组件不加载数据):

用法 代码集编号属性 示例
BvCommonCode 绑定字典 setCode="MZDM" <BvCommonCode setCode="MZDM" controlType="select" />
BvSelectForCodes 绑定字典 dmjbh="MZDM" <BvSelectForCodes dmjbh="MZDM" />
BvRadioForCodes 绑定字典 dmjbh="XB" <BvRadioForCodes dmjbh="XB" />
BvCascaderForCodes 绑定字典 dmjbh="XZQH" <BvCascaderForCodes dmjbh="XZQH" />

{代码集编号} 的来源:统一从字段规格表的 关联关系/数据来源 列中提取 字典:{代码集编号} 中的编号部分(如 字典:MZDM → 编号为 MZDM),禁止自行编造代码集编号。

🔴 禁止:
- BvCommonCode 使用 dmjbh 属性(BvCommonCode 不认识 dmjbh,该属性只对 Bv*ForCodes 系列生效)
- Bv*ForCodes 系列组件使用 setCode 属性(setCode 只对 BvCommonCode 生效,Bv*ForCodes 不认识该属性)
- 同一个字典字段在列表页渲染时用 queryCommonCodes({ DMJBH }) 构建映射,在表单中却用不同的代码集编号
- 每生成一个 Vue 文件后,用 Grep 工具按规则扫描,任一命中则中断并报错
- 快速扫描清单(生成后必检项,按此顺序 Grep):
1. <template> 根节点非 BvPanel → Grep "<template>\s*<div" 或 "<template>\s*<el-row"(只允许 <BvPanel)
2. 搜索条件区禁止用 el-form → 规则见 Skill(pacp-rules, args="frontend-vue3-coding-standards 零容忍")
3. 手写 el-option 字典选项 → Grep "<el-option"(应用 BvCommonCode 用 setCode,或 Bv*ForCodes 系列用 dmjbh)
4. 日期提交 Date 对象 → Grep "new Date()" 或缺 dayjs 格式化
5. API 请求未用 getAxios → Grep "axios\." 或 Grep "fetch(" 或 Grep "$ajax"
6. 表格事件非 camelCase → Grep "@page-change\|@size-change\|@selection-change"(应为 @pageChange 等)
7. 表单 el-form 未设 label-width="200px" → 规则见 Skill(pacp-rules, args="frontend-vue3-coding-standards 表单布局")
8. 列表时间列未用 dayjs 格式化或宽度不符 → Grep "prop=.*(SJ|CJSJ|XGSJ|RQ|Date).*min-width"(应为 width="200" 或 width="130" + 插槽 dayjs 格式化)
9. 附件字段未用 BvAttachment → Grep "el-upload"(应为 BvAttachment);同时核对 spec 附件清单条目数(Grep "BvAttachment" 生成的 .vue 文件,数量须与清单一致)
10. BvDialog 内容禁止用 <template #default> 包装 → Grep "<BvDialog" 检查子节点首元素是否为 <template #default>,若是则报错(内容应直接放在 BvDialog 子节点,禁止用 #default 包装;规则见 Skill(pacp-rules, args="frontend-vue3-coding-standards 弹窗"))
11. 表单内 el-row 禁止添加 gutter 属性 → Grep "<el-row.*gutter" 确认 el-row 不在 el-form 内;若在 el-form 内则报错(规则见 Skill(pacp-rules, args="frontend-vue3-coding-standards"))
12. ForCodes 系列组件禁止使用 setCode 属性 → Grep "BvSelectForCodes.*setCode\|BvRadioForCodes.*setCode\|BvCheckboxForCodes.*setCode\|BvTagForCodes.*setCode\|BvCascaderForCodes.*setCode\|BvTreeSelectForCodes.*setCode"(应为 dmjbh,setCode 仅 BvCommonCode 可用;规则见 Skill(pacp-rules, args="frontend-business-components-codes"))
13. 业务编号字段(*BH)禁止用 el-input → Grep "prop=.*BH.*el-input" 检查是否用 el-input 替代 BvIdGenerator(规则见 Skill(pacp-rules, args="frontend-component-mapping 业务编号"))
14. 禁止使用 BvUpload 组件 → Grep "BvUpload" 检查是否误用 BvUpload(已废弃,统一用 BvAttachment;规则见 Skill(pacp-rules, args="frontend-business-components-attachment"))

3.2 详情页(${entity}-detail.vue)

生成步骤 说明 骨架文件
1. 遍历字段清单 逐行读取字段规格表,提取字段名、字段类型、是否必填、表单组件列 @@/skeletons/frontend/detail.vue-tpl.md
2. 组件选型 对"表单组件"列已标注的平台组件直接使用;对未标注的普通字段,按 Skill(pacp-rules, args="frontend-component-mapping 字段类型映射") 查询默认组件 -

| 3. 业务语义强制绑定 | 命中业务语义的字段必须用强制平台组件,违者零容忍(规则见 Skill(pacp-rules, args="frontend-component-mapping")) | - |
| 4. 附件处理 | 附件需求从 spec 的"扩展信息 → 附件清单"章节读取(不在字段规格表中)。按清单逐条生成 <BvAttachment>,type 取清单中的 LXDM(如 SFZ),subType 取 ZLXDM(如有)。无附件清单时不生成任何 <BvAttachment> 示例,骨架模板中的附件示例行须删除 | - |
| 5. 必填校验 | 对"是否必填"=Y 的字段,在 :rules 中添加 { required: true, message: '请输入${字段中文名}', trigger: 'blur' } | - |
| 6. 奇数字段布局 | 一行两列布局下,字段总数为奇数时,最后一个字段占左列(:span="12"),右列补充空白 <el-col :span="12"><!-- 空单元格,保持布局对齐 --></el-col>,禁止用 :span="24" 占满整行 | - |
| 7. 业务编号字段处理 | 字段规格表"表单组件"列标注 BvIdGenerator 的 *BH 字段,必须生成 <BvIdGenerator> 组件,seqName 取字段中文名(如"站点编号"),seqName 须与后端 t_admin_xtgl_sxhdy.BHMC 逐字一致;设置 :automatic="true" 自动生成编号,:disabled="isView" 查看时禁用 | - |
| 8. 🔴 字典字段组件选型 | 字段规格表"表单组件"列标注 BvCommonCode(字典)或字段为 *DM/*LX/ZT/*DJ/*FL 模式的,必须按以下规则选型:<br/>- 先查 表单组件 列的具体标注:若标注了具体组件(如 BvSelectForCodes),严格按标注<br/>- 若标注为 BvCommonCode(字典),按原型形态选:下拉框→BvSelectForCodes(dmjbh)、单选→BvRadioForCodes(dmjbh)、多选→BvCheckboxForCodes(dmjbh)、标签→BvTagForCodes(dmjbh)、级联→BvCascaderForCodes(dmjbh)<br/>- 原型不明确 → BvCommonCode(setCode,默认 controlType=&quot;select&quot;)<br/>- {代码集编号} 统一从字段规格表 关联关系/数据来源 列的 字典:{代码集编号} 提取<br/>- 🔴 禁止混用 prop:BvCommonCode 用 setCode,Bv*ForCodes 用 dmjbh,互不通用。选型规则详见本章 §3.1 第 6 条 | - |

零容忍规则:见本章「❌ 禁止清单 → 前端零容忍规则」

3.3 API文件(${entity}.js)

项目 规则 骨架文件
封装方式 getAxios() + async/await @@/skeletons/frontend/api.js-tpl.md
函数命名 以实体为前缀(query${ENTITY}Page/add${ENTITY}/...) -
URL 按接口契约(Step 1.2) -

Step 4:代码组织

类型 路径 文件
Vue 组件 src/views/{所属业务}/{功能模块}/ ${entity}-list.vue(实体列表页)、${entity}-detail.vue(实体详情页)
API 封装 src/api/{所属业务}/ {功能模块}-{entity1}.js、{功能模块}-{entity2}.js、{功能模块}-{entity3}.js
路由配置 src/router/{所属业务}/ {功能模块}.js(模块路由)

Step 5:代码审核

审核类型 执行时机 审核内容 失败处理
规范审核 生成后 前端零容忍规则(Skill(pacp-rules, args=&quot;frontend-vue3-coding-standards 零容忍&quot;)) 一线修复 → 询问用户三选一:修复后重试 / 强制生成 / 中止
一致性对照 生成后 与 @@/examples/hjkq/frontend/ 真实示例的一致性 列出偏差项 → 自动对照示例修正 → 重新编译验证

资源指针

外部规则库(pacp-rules,Skill 工具调用查询)

规则文件 内容 常用查询场景
system-module-path 核心占位符定义与命名规范 占位符查询、接口契约核心定义
frontend-vue3-coding-standards Vue3 前端编码规范 + 零容忍表(整份加载) 前端零容忍规则、组件使用规范
frontend-component-mapping 原型控件→平台组件选型映射表 + 字段语义→强制组件绑定 §D 字段语义识别、组件绑定规则(最高优先级)
frontend-platform-components-table-panel @bovo-vue/platform 表格与面板(BvTable/BvPanel) 组件 props/events/用法
frontend-platform-components-dialog @bovo-vue/platform 对话框(BvDialog) 组件 props/events/用法
frontend-platform-components-form @bovo-vue/platform 表单控件(BvSelect/Radio/Checkbox 等) 组件 props/events/用法
frontend-platform-components-editor-input @bovo-vue/platform 编辑器与输入(BvQuillEditor/BvCodeEditor) 组件 props/events/用法
frontend-platform-components-auxiliary @bovo-vue/platform 辅助组件(高级查询/日期范围等) 组件 props/events/用法
frontend-platform-components-icon-theme @bovo-vue/platform 图标与主题系统 组件 props/events/用法
frontend-platform-components-conventions @bovo-vue/platform 通用约定(安装引入/请求返回契约等) 组件 props/events/用法
frontend-business-components-codes @bovo-vue/pacp-components ForCodes 系列(Select/Radio/Checkbox 等) 业务组件用法
frontend-business-components-area @bovo-vue/pacp-components ForArea 系列(Cascader/Tree) 业务组件用法
frontend-business-components-industry @bovo-vue/pacp-components ForIndustry 系列(Cascader/Tree) 业务组件用法
frontend-business-components-user-dept @bovo-vue/pacp-components 用户与部门(BvUserSelector/BvDeptSelector) 业务组件用法
frontend-business-components-attachment @bovo-vue/pacp-components 附件管理(BvAttachment) 业务组件用法
frontend-business-components-misc @bovo-vue/pacp-components 其他(BvCommonCode/BvIdGenerator 等) 业务组件用法
frontend-utils-core @bovo-vue/utils 通用工具(字符串/对象/时间/URL 等) 工具函数用法
frontend-utils-pacp-platform @bovo-vue/utils/pacp 平台工具(queryCommonCodes/Excel 等) 工具函数用法(高频)
data-model-standard 数据模型规范 实体命名、字段类型、必备审计字段
data-model-audit-fields 6 个必备审计字段表与定义模板 高频精准加载
common-codes-standard 公共代码值总章(平台规范 vs 业务代码集、字段名模式、组件绑定、SQL 生成总则) 字段名模式、组件绑定、代码集识别
common-codes-attachment 附件类型 INSERT(表 t_platform_wj_wjlx / t_platform_wj_wjzlx) 业务附件需求时
common-codes-menu-init 功能菜单 INSERT(表 t_admin_rms_cd) 业务级+页面级菜单 INSERT
common-codes-id-generator 编号定义 INSERT(表 t_admin_xtgl_sxhdy,与 BvIdGenerator 对齐) 字段标注 BvIdGenerator 时
frontend-troubleshoot 前端运行时故障速查表 故障排查(分页、搜索区、组件、表单、接口等)
frontend-search-layout 前端搜索区布局方案(带标签左右/上下/无标签 3 种方案 + 选择逻辑) 生成列表页搜索区时,原型未明确布局方案时

> 变基说明(精确 basename):pacp-rules 在 2026-07-14 重构(原 platform-components.md 按组件系列拆为 7 个子文件;原 pacp-business-components.md 按业务系列拆为 6 个;原 utils-library.md 拆为 frontend-utils-core 与 frontend-utils-pacp-platform;高频小目标 java-platform-utils / sql-init-data / data-model-audit-fields / common-codes-{attachment,menu-init,id-generator} 独立成文件)。消费技能 args 直接传子文件 basename,pacp-rules 内部按 basename 自动定位,对调用方透明。

常用查询示例:
- 占位符查询:Skill(pacp-rules, args=&quot;system-module-path 占位符&quot;)
- 前端零容忍规则:Skill(pacp-rules, args=&quot;frontend-vue3-coding-standards 零容忍&quot;)(跨节由 pacp-rules 用 Grep 聚合)
- 字段语义识别:Skill(pacp-rules, args=&quot;frontend-component-mapping 字段语义&quot;) 或 Skill(pacp-rules, args=&quot;common-codes-standard 字段名模式&quot;)
- 组件绑定规则:Skill(pacp-rules, args=&quot;common-codes-standard 组件绑定&quot;)
- 某平台组件用法:Skill(pacp-rules, args=&quot;frontend-platform-components-form BvSelect&quot;)(精准加载该子文件后 Grep)
- 某业务组件用法:Skill(pacp-rules, args=&quot;frontend-business-components-codes BvSelectForCodes&quot;)
- 附件组件 + 表结构:Skill(pacp-rules, args=&quot;frontend-business-components-attachment&quot;) + Skill(pacp-rules, args=&quot;common-codes-attachment&quot;)
- 故障排查:Skill(pacp-rules, args=&quot;frontend-troubleshoot 分页&quot;)

本技能自包含资源

> @@/ 前缀表示本技能目录的根路径。例如 @@/skeletons/frontend/ 解析为 {本技能目录}/skeletons/frontend/。跨技能引用时,@@/ 始终指向被调用技能自身的根目录,而非调用方。

资源类型 路径 说明 使用方式
示例对照表 @@/references/examples-reference.md 前端对照表部分 一致性对照
代码骨架 @@/skeletons/frontend/ list/detail/api/router/index/layout 模板生成
进阶布局 @@/skeletons/variants/ tree-list/list-tab 特殊布局生成
完整示例 @@/examples/hjkq/frontend/ 前端 Vue,组件写法权威源 对照参考
按需加载入口 ../pacp-rules/references/INDEX.md 五类逻辑分组总图 + 文件名列表 看人类可读入口,调用仍走 basename

生成铁律

序号 铁律内容 说明
1 严格遵规格 必须严格按模块规格文件中的字段、功能、布局生成
2 🔴 原型优先 存在原型(已冻结在 spec 布局清单)时,原型实际布局 > 平台规范约束 > 骨架模板参考
3 🔴 接口契约稳定 api.js 的 URL 必须按 Step 1.2 接口契约(从 spec 占位符派生),不得自行改写路径
4 🔴 字段语义强制组件 命中业务语义的字段(*BH/*DM/*LX/*QY/FZR/*BM 等)必须用强制平台组件,禁止用普通 &lt;el-input&gt; 替代。映射规则见 Skill(pacp-rules, args=&quot;frontend-component-mapping 字段语义&quot;),生成时每字段必查
5 产出物存放 代码落项目源码树,只生成本模块相关代码,不产出后端文件
6 🔴 第三方依赖安装 识别到需要安装第三方组件时,使用 pnpm add &lt;包名&gt; --ignore-scripts 方式添加依赖

确认策略(🔴 CHECKPOINT)

> 代码生成是不可逆、高耗时操作。以下场景必须暂停向用户确认(见下方「静默禁止」);无不确定项则直接执行,不啰嗦询问。
>
> caller=pacp-* 时:文件冲突由协调者预检查(manifest.json.fileConflictStrategy),组件选型由协调者在 spec 中确定(字段规格表「表单组件」列),本技能跳过对应 CHECKPOINT。
>
> caller=standalone 时:协调者不存在,本技能自行处理全部 CHECKPOINT。

# 触发场景 触发条件 必做动作 出处
1 🔴 目标文件已存在 standalone 中断生成,列出冲突文件清单,询问用户四选一:全部覆盖 / 逐个确认 / 跳过现有文件 / 中止生成 生成铁律5
2 🔴 编译失败 standalone 一线修复:查 Skill(pacp-rules, args=&quot;compile-error-troubleshoot&quot;) 速查表 → 仍失败则报告错误清单,询问用户三选一:修复后重试 / 强制生成 / 中止 Step 5.1
3 🔴 规范审核失败(零容忍违例) 全部 一线修复:列违例项清单对照修正 → 仍失败则询问用户三选一:修复后重试 / 强制生成 / 中止 Step 5.2
4 🔴 一致性偏差(与示例不符) 全部 列偏差项 → 自动对照示例修正 → 重新编译验证(修复后自动继续,非询问) Step 5.3
5 🟡 组件选型冲突(字段语义与平台组件不匹配) standalone 查 Skill(pacp-rules, args=&quot;frontend-component-mapping&quot;) 确认强制绑定规则,按规则修正 生成铁律4
6 🟡 路由路径冲突(多个实体路径重复) 全部 检查路由表,确保每个实体的路由路径唯一,按 {所属业务}/{功能模块}/{entity}-{pageType} 规范修正 Step 2

静默禁止:以上任一命中若不暂停而直接覆盖/继续 → 视为生成失败。

禁止清单(❌ 反例黑名单)

> 本技能必须遵守以下禁止项,违者将导致代码无法运行或违反PACP平台规范。

前端零容忍规则(托管于 pacp-rules,单一真相源)

> 以下 11 条零容忍规则已集中托管在 Skill(pacp-rules, args=&quot;frontend-vue3-coding-standards 零容忍禁止项&quot;)。生成时及审核时必查,每生成一个 Vue 文件后按规则自检:
>
> 1. 禁止 Vue 模板根节点用 &lt;div&gt; 或 &lt;el-row&gt; → 必须 &lt;BvPanel&gt;
> 2. 禁止搜索条件区用 &lt;el-form&gt; → 必须 &lt;el-row&gt; + &lt;el-col&gt;
> 3. 禁止手写 &lt;el-option&gt; 做字典选项 → 必须 BvCommonCode(setCode)或 BvSelectForCodes(dmjbh)
> 4. 禁止 API 请求用 axios / fetch / $ajax → 必须 getAxios()
> 5. 禁止 BvTable 事件用 kebab-case → 必须 camelCase
> 6. 禁止表单 &lt;el-form&gt; 缺少 label-width=&quot;200px&quot;
> 7. 禁止日期字段提交 Date 对象 → 必须 dayjs 格式化
> 8. 禁止附件字段用 &lt;el-upload&gt; → 必须 &lt;BvAttachment&gt;
> 9. 禁止 ForCodes 系列组件用 setCode 属性 → 必须 dmjbh(setCode 仅 BvCommonCode 可用;BvCommonCode 也禁止用 dmjbh——两组件系列的 prop 不通用)
> 10. 禁止业务编号字段(*BH)用 &lt;el-input&gt; → 必须 &lt;BvIdGenerator&gt;
> 11. 禁止使用已废弃的 BvUpload 组件 → 统一用 BvAttachment
>
> 完整规则见 Skill(pacp-rules, args=&quot;frontend-vue3-coding-standards 零容忍禁止项&quot;)。强制组件绑定映射见 Skill(pacp-rules, args=&quot;frontend-component-mapping&quot;)。

❌ 本技能边界禁止项

禁止项 说明 后果
禁止自行改写 api.js 的接口路径 必须按 Step 1.2 接口契约从 spec 占位符派生,与后端一致 接口 404 / 参数丢失
禁止生成后端文件 .java/.xml/.sql 归 pacp-coding-backend,本技能只产 Vue/API/路由 混淆职责边界

运行时规则收集(🔴 新规则捕获)

> 用户在生成/使用过程中提出的新前端规则(不在现有 pacp-rules 规范库及本 SKILL 现有规则中的),必须即时收集沉淀到 .pacp/business-frontend-rule.md,避免规则丢失。规则沉淀后应回流给 pacp-rules 维护者,但本技能只负责捕获、不直接改 pacp-rules。

触发条件

在技能执行的任意阶段(读规格/生成/审核),当用户提出符合下列任一特征的新前端规则时触发:
- 用户使用指令性语言("规则是 / 必须 / 禁止 / 要求 / 约定 / 以后都 / 以后请"),明确一条前端编码约定
- 用户纠正生成结果并给出通用性约束(可复用于其他实体/模块,而非一次性特例)
- 用户补充平台组件用法、命名规范、目录约定、事件/属性约束等

收集动作

步骤 动作 说明
1 判断是否为新规则 核对 pacp-rules 的全部子文件(frontend-vue3-coding-standards、frontend-platform-components-*、frontend-business-components-*、frontend-component-mapping、common-codes-* 等,完整清单见 INDEX.md)及本 SKILL 已有规则。若为已知规则,仅确认一致,不重复收集
2 追加写入 .pacp/business-frontend-rule.md 文件不存在 → 创建,并写入标题与说明头;文件已存在 → 在文件末尾追加新条目(禁止覆盖已有内容)
3 条目格式 ## [简短规则名](YYYY-MM-DD HH:mm 来自用户) + 场景/规则/示例/来源
4 即时应用 收集后在本次剩余生成中遵循该规则,并向用户简短确认"已记录规则 → .pacp/business-frontend-rule.md"

收集边界(不收集)

类型 说明 处理方式
一次性特例 仅针对当前某字段/某实体的特殊处理,无复用价值 属需求,应回写 spec
后端/SQL 规则 归 pacp-coding-backend 不写入本前端规则文件
需求澄清 业务需求(增删字段、改功能) 回写 spec,不进规则文件

不确定时处理

无法判断是否为新前端规则(vs 需求 / 特例 / 已知规则)时,询问用户:"这是否需要沉淀为通用前端规则(写入 .pacp/business-frontend-rule.md)?" 再据回复处理。

交付验证

全部产出完毕后,输出:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ 模块前端代码生成完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

模块:${MODULE_COMMENT}(${MODULE})
实体数量:${ENTITY_COUNT}
产出文件:
  ✓ Vue:src/views/{所属业务}/{功能模块}/...(index/layout/list/detail)
  ✓ API:src/api/{所属业务}/{功能模块}-{entity}.js(每个实体一个API文件)
  ✓ 路由:src/router/{所属业务}/{功能模块}.js

验证结果:
  ✓ 规范审核:通过(前端零容忍规则)
  ✓ 接口契约:api.js 路径与后端对齐(/api/v2/business/{所属业务}/{功能模块}/{entity})

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

与协调者/姊妹技能的协作

调用关系表

调用方 场景 一致性要求 执行顺序
pacp-spec 复杂业务(多模块、原型解析、依赖排序) 跑前后端 → 读同一份 spec 先 pacp-coding-backend → 后本技能
pacp-coding 简单业务/单模块(临时规格、即时生成) 跑前后端 → 读同一份 spec 先 pacp-coding-backend → 后本技能
用户单点调用 只要前端 无对端,无需统一 仅本技能

执行流程图

协调者(pacp-spec 或 pacp-coding)
  ↓ 输出模块规格:modules/{所属业务}.{功能模块}.spec.md
pacp-coding-backend(先执行)
  ↓ 生成 SQL + Java + JUnit + 接口契约(@RequestMapping 路径)
pacp-coding-frontend(本技能,后执行)
  ↓ 读取同一模块规格
  ↓ 按接口契约生成 api.js(URL 与后端一致)
  ↓ 按布局清单生成 Vue 组件(list/detail)+ 模块入口/路由
  ↓ 前端代码审核(静态审核:规范审核 + 一致性对照;不执行 pnpm 编译)
  ↓ 输出前端代码
协调者
  ↓ 继续下一个模块(pacp-spec 多模块场景)

接口对齐机制

机制 说明 优势
占位符派生 两技能不通过会话上下文传递接口,而是各自从模块规格的占位符映射表派生出同一组 URL 与参数键名 天然一致,无需同步

PACP 技术栈基线

技术栈基线见 Skill(pacp-rules, args=&quot;tech-stack-baseline&quot;)。

常见问题

5 问
答案由本站依据条目字段整理
业务模块前端代码一键生成怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_aeb36e80/pacp-coding-frontend。安装方式为未标注。装完刷新技能列表或重开客户端。

业务模块前端代码一键生成支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

业务模块前端代码一键生成权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

业务模块前端代码一键生成收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

业务模块前端代码一键生成用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。