生成工作流

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

列表页生成工作流技能。编排需求解析、接口采集、代码生成三步流程,生成基于 ProTable + ModalForm 的增删改查页面。触发词:生成列表页、新建表格页、增删改查页面、列表页开发。

一句话选型结论

按资料字段整理

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

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

安装

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

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

  2. 2
    拿到技能文件

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

  3. 3
    刷新技能列表

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

  4. 4
    验证是否生效

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

技能档案

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

典型使用场景

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 全文

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

Ant Design 列表页生成工作流

本 skill 定义列表页的生成流程,不包含组件 API 或代码规范细节。规范和模板由项目文件和组件 skill 承载。

触发词

生成列表页、新建表格页、增删改查页面、列表页开发

依赖

来源 内容 位置
项目规范 列表页代码规范 + 完整模板 docs/list-page-convention.md
pro-table skill ProTable 组件 API skill
modal-form skill ModalForm + BetaSchemaForm 组件 API skill
api-doc-scraper skill YApi 接口文档采集 skill

> 若依赖 skill 未安装,仅按项目规范文件生成,不猜测未知的组件属性。

文件位置约定

所有工作流产生的临时文件统一存放在项目根目录 .aicode/tmp/ 下,按类型分目录:

目录/文件 用途 产出阶段
.aicode/tmp/workflow-registry.json 工作流注册表(全局唯一) 工作流启动时创建,每步更新
.aicode/tmp/page-specs/ 页面描述文件(策划 + 接口信息) Step 1 产出,Step 2 更新
.aicode/tmp/api-docs/ YApi 原始接口文档 api-doc-scraper skill 产出

> .aicode/ 目录已在 .gitignore 中,不会提交到仓库。所有临时文件集中在 .aicode/tmp/ 下,方便整体清理。

工作流注册表

为什么需要注册表

.aicode/ 是隐藏目录,ExactSearch 和 RepoStruct 对隐藏目录索引支持差,无法可靠搜索其中的文件。因此需要一个已知路径的注册表文件,断点续接时直接用 ReadFile 读取,不依赖文件搜索。

此外,多个工作流可能同时运行(如列表页工作流、详情页工作流),注册表可以统一追踪所有工作流的进度。

注册表结构

文件路径:.aicode/tmp/workflow-registry.json

{
  "workflows": [
    {
      "id": "antd-list-page",
      "name": "Ant Design 列表页生成",
      "pages": [
        {
          "pageName": "DeptManagement",
          "displayName": "部门管理",
          "specPath": ".aicode/tmp/page-specs/DeptManagement.md",
          "step": 2,
          "stepStatus": "done",
          "updatedAt": "2026-05-11"
        }
      ]
    }
  ]
}

字段说明:

字段 层级 类型 含义
id workflow string 工作流唯一标识,本工作流固定为 antd-list-page
name workflow string 工作流显示名称
pages workflow array 该工作流下的所有页面实例
pageName page string 页面英文标识(文件名,如 DeptManagement)
displayName page string 页面中文显示名(如"部门管理"),用于用户识别
specPath page string spec 文件相对路径(相对于项目根目录)
step page number 当前步骤编号(1/2/3)
stepStatus page string 当前步骤状态:in-progress / done
updatedAt page string 最后更新日期

注册表操作规则

读取注册表:断点续接时,直接用 ReadFile 读取 .aicode/tmp/workflow-registry.json。

⚠️ 重要:由于 .aicode/ 是隐藏目录,禁止使用 ExactSearch 或 RepoStruct 搜索其中的文件。必须使用以下方式之一:
1. ReadFile 直接读取已知路径的文件(首选)
2. RunCommand + find 命令搜索(路径不确定时使用)

创建/更新注册表:
- 工作流首次启动时,若注册表文件不存在,创建并写入初始数据
- 若注册表已存在但无本工作流条目,追加到 workflows 数组
- 若注册表已存在且已有本工作流条目,更新对应 page 的 step、stepStatus、updatedAt
- 每次更新 spec 文件的 frontmatter 时,必须同步更新注册表

删除页面:当用户要求删除某个页面时,从注册表中移除对应 page 条目,同时删除对应的 spec 文件。

临时文件清理

所有临时文件集中在 .aicode/tmp/ 下,支持以下清理方式:

清理场景 操作 命令
清理单个页面 删除 spec 文件 + 从注册表移除 page 条目 手动操作
清理已完成的工作流 删除该工作流下所有 page 的 spec 文件 + 从注册表移除 workflow 条目 手动操作
清理全部临时文件 直接删除 .aicode/tmp/ 目录 rm -rf .aicode/tmp

自动清理规则:
- 当工作流 Step 3 完成(代码已生成)后,spec 文件仍保留,作为代码生成的记录和回溯依据
- 用户可随时要求清理已完成或废弃的工作流文件
- 清理注册表条目时,必须同步删除对应的 spec 文件,避免孤儿文件

断点续接

Spec 文件元数据

每个页面描述文件(.aicode/tmp/page-specs/{PageName}.md)必须包含 YAML frontmatter 元数据,记录工作流状态:

---
workflow: antd-list-page
pageName: DeptManagement
displayName: 部门管理
step: 1
stepStatus: done
updatedAt: 2026-05-11
---

# {页面名称}

## 页面信息
...

字段说明:

字段 类型 含义
workflow string 所属工作流标识,固定为 antd-list-page
pageName string 页面英文标识,与注册表中的 pageName 一致
displayName string 页面中文显示名,与注册表中的 displayName 一致
step number 当前步骤编号(1/2/3)
stepStatus string 当前步骤状态:in-progress / done
updatedAt string 最后更新日期

状态流转:

step stepStatus 含义 续接动作
1 in-progress 需求解析进行中 继续完善 Step 1
1 done 需求解析已完成 从 Step 2(接口采集)开始
2 in-progress 接口采集进行中 继续完善 Step 2
2 done 接口采集已完成 从 Step 3(代码生成)开始
3 done 代码已生成 工作流已完成

续接触发规则

当用户提到某个页面名称时:
1. 用 ReadFile 读取 .aicode/tmp/workflow-registry.json
2. 在注册表中按 displayName 或 pageName 匹配页面
3. 根据 id 字段确认属于哪个工作流
4. 根据 step + stepStatus 判断续接点
5. 用 ReadFile 读取 specPath 指向的 spec 文件,获取完整页面描述
6. 向用户确认当前状态后继续执行

多工作流场景:如果注册表中有多个工作流的页面与用户描述匹配,列出所有匹配项让用户选择。

注册表不存在或页面未找到:视为新任务,从 Step 1 开始。

元数据更新规则

  • Step 完成时:同步更新 spec 文件的 frontmatter 和注册表中对应 page 的 step、stepStatus、updatedAt
  • Step 开始时:将 stepStatus 设为 in-progress,同步更新两处
  • 用户确认后:将 stepStatus 设为 done,step 推进到下一步,同步更新两处
  • 原则:spec frontmatter 和注册表必须保持一致,任何状态变更都双写

工作流

Step 1:需求解析

将产品策划/需求文档转为结构化的页面描述,输出为 Markdown 文件。

输入:用户提供的策划内容(文字、截图、文档链接等)

输出:.aicode/tmp/page-specs/{PageName}.md,包含以下结构:

> ⚠️ Spec 格式权威声明:下方模板定义的 spec 格式为本工作流的权威格式。page-spec-parser skill 的 page-spec-schema.md 仅作为解析阶段的参考(字段语义、推断规则、标注规范等),最终产出物的表格结构、列定义必须严格对齐下方模板,不得混用其他格式。

---
workflow: antd-list-page
pageName: {PageName}
displayName: {页面中文名}
step: 1
stepStatus: in-progress
updatedAt: 2026-05-11
---

# {页面名称}

## 页面信息
- 模块:
- 路由路径:
- 主键字段:

## 表格列

| 字段 | 标题 | valueType | 搜索 | width | 备注 |
|------|------|-----------|------|-------|------|

## 弹窗字段

| 字段 | 标题 | valueType | 必填 | width | 备注 |
|------|------|-----------|------|-------|------|

## 操作

| 类型 | 操作名 | 触发位置 | 关联接口 |
|------|--------|---------|---------|

## 接口

| 操作 | 接口路径 | 请求方式 | 备注 |
|------|---------|---------|------|

规则:
- valueType 根据字段语义推断(文本→text,状态→select,时间→dateTime,数字→digit 等)
- 搜索列标记 ✅ 或 ❌
- 弹窗字段与表格列有重叠时,分别描述,可能搜索可见性不同
- 输出后必须让用户确认,确认后将 stepStatus 更新为 done,再进入下一步

Step 2:接口采集

从 YApi 采集接口定义,补充 Step 1 中的接口信息。

核心原则:接口信息以 YApi 采集结果为准,覆盖 Step 1 中的推断内容。

Step 1(策划解析)的输出完全以策划文档为主,接口路径等可能为空或标注"待接口采集"。
Step 2(接口采集)的输出完全以 YApi 实际接口为准,用真实数据替换所有推断和占位内容。

输入:Step 1 输出的页面描述 + YApi 接口 URL 或关键词

输出:更新 .aicode/tmp/page-specs/{PageName}.md 中的接口表、字段名、操作关联等

2.1 接口清单推导

根据 spec 中的字段和操作,推导页面所需的完整接口清单,包含显式接口和隐式接口。

显式接口:spec 接口表中已列出的接口(如列表、保存、状态切换)。

隐式接口推导决策清单:

按以下顺序逐项检查 spec,每项命中则执行对应动作:

清单 A:弹窗字段检查(遍历每个弹窗字段)

对于每个弹窗字段:
  if valueType == 'select' 或 'radio':
    if 备注含"远程请求"或"数据来源":
      → 推导下拉数据源接口,备注记录来源(如"负责人 → 用户列表下拉接口")
    elif 备注含明确枚举值(如"0-禁用,1-启用"):
      → 无需额外接口,枚举前端写死
    else:
      → 标记「需确认」:枚举前端写死 or 拉字典接口?

  if valueType == 'select' 且 fieldProps 含 mode: 'multiple':
    → 同上 select 逻辑,不影响推导规则

  if 字段有联动说明(如"选择省后加载市"):
    → 推导每级联动的数据源接口

清单 B:操作检查(遍历每个操作)

对于每个操作:
  if 操作名 == '编辑':
    if 列表接口响应字段已包含弹窗所需全部字段:
      → 不需要详情接口
    else:
      → 推导详情接口(编辑回填用)

  if 操作名 == '删除' 且 接口表中无删除接口:
    → 推导删除接口

  if 操作名 == '导出' 且 接口表中无导出接口:
    → 推导导出接口

  if 操作名 == '导入' 且 接口表中无导入接口:
    → 推导导入接口 + 模板下载接口

清单 C:表格列检查(遍历每个表格列)

对于每个表格列:
  if valueType == 'select' 或 'radio':
    if 备注含明确枚举值:
      → 无需额外接口
    elif 弹窗字段中已有同字段的下拉数据源推导:
      → 复用,不重复推导
    else:
      → 标记「需确认」:枚举前端写死 or 拉字典接口?

推导边界:
- 只推导列表页自身需要的接口,不推导关联页面的接口
- 已在清单 A 推导过的下拉数据源,清单 C 中复用,不重复推导

输出:一份完整的接口清单,标注每个接口的来源(显式/隐式推导),供用户确认。

2.2 用户确认清单

将推导出的接口清单展示给用户,包含:
- 显式接口(来自 spec 接口表)
- 隐式接口(来自推导规则)
- 需要用户确认的歧义项(如枚举前端写死 or 字典接口)

用户确认后才能继续。用户可以:
- 删除不需要的接口
- 补充遗漏的接口
- 确认歧义项的处理方式

2.3 检查本地已有接口文档

在搜索 YApi 之前,先检查 .aicode/tmp/api-docs/ 下是否已有相关接口文档。

检查方式:
1. 列出 .aicode/tmp/api-docs/ 下所有 .md 文件
2. 读取文件内容,检查是否包含清单中的接口(按接口路径或标题匹配)
3. 已存在的接口标记为"已采集",跳过 YApi 搜索

复用规则:
- 已采集的接口直接复用,不重新采集
- 若用户要求刷新,则重新采集覆盖

2.4 YApi 搜索采集

按接口清单逐个搜索 YApi,使用 api-doc-scraper skill 的 yapi-search.js 脚本。

搜索关键词推导:

每个接口需要推导一组搜索关键词,按优先级排列:

优先级 关键词来源 示例(部门管理)
1 页面业务名(中文) "部门"
2 接口操作名(中文) "部门列表"、"部门保存"、"部门状态"
3 接口路径关键词(英文,从 spec 推断路径提取) "dept"、"dept/list"、"dept/save"
4 字段名关键词(英文,从 spec 字段名提取) "leader"、"user"(用户下拉接口)
5 模块名(中文) "系统"、"权限"

搜索策略(单接口最多 3 轮):

第 1 轮:优先级 1+2 的中文关键词
  → 搜到唯一结果 → 直接使用
  → 搜到多个结果 → 进入歧义消解
  → 搜到 0 个结果 → 进入第 2 轮

第 2 轮:优先级 3 的路径关键词
  → 搜到唯一结果 → 直接使用
  → 搜到多个结果 → 进入歧义消解
  → 搜到 0 个结果 → 进入第 3 轮

第 3 轮:优先级 4+5 的补充关键词
  → 搜到结果 → 使用
  → 搜到 0 个结果 → 标记为"未找到",不再搜索

歧义消解:

当搜索返回多个候选接口时,按以下规则排序选择:

排序依据 优先级 说明
路径匹配度 最高 接口路径包含 spec 中推断的路径关键词
标题匹配度 高 接口标题包含操作名(如"列表"、"保存"、"切换状态")
请求方式匹配 中 请求方式与 spec 推断一致(如列表→GET/POST,保存→POST)
分类匹配度 低 接口所属分类与页面模块名接近

歧义消解后仍无法确定唯一接口时,列出 Top 3 候选供用户选择。

跨项目依赖处理:

当接口在当前 YApi 项目中搜不到时(如用户下拉接口可能在用户管理项目中):
1. 在搜索结果中标注"当前项目未找到"
2. 询问用户:该接口是否在其他 YApi 项目中?如果是,提供项目 ID
3. 如果用户无法提供,标记为"待确认",继续后续流程

2.5 汇总报告

所有接口搜索完成后,输出汇总报告:

接口 状态 YApi ID 备注
部门列表 ✅ 已找到 70473 —
部门保存 ✅ 已找到 70474 —
状态切换 ✅ 已找到 70475 —
用户下拉列表 ⚠️ 当前项目未找到 — 可能在用户管理项目中
部门详情 ❌ 未找到 — 3 轮搜索均无结果

状态说明:
- ✅ 已找到:唯一匹配或歧义消解后确定
- ⚠️ 歧义/跨项目:需要用户确认
- ❌ 未找到:3 轮搜索均无结果

2.6 用户确认差异

将汇总报告展示给用户,用户可以:
- 为 ⚠️ 状态的接口选择正确候选或提供其他项目信息
- 为 ❌ 状态的接口提供 YApi URL 或手动补充接口信息
- 确认缺失接口可以暂不处理(代码生成时按 spec 推断处理)

2.7 更新 spec 文件

根据采集结果更新 .aicode/tmp/page-specs/{PageName}.md:

对齐规则(接口信息覆盖策划推断):
1. 接口路径:以 YApi 实际路径为准,替换 Step 1 中的推断路径或空值
2. 字段名:以 YApi 请求/响应中的字段名为准,替换 Step 1 中的推断字段名(如 memberCount → userCount)
3. 请求方式:以 YApi 定义为准
4. 请求参数:以 YApi 定义为准,补充 Step 1 中缺失的参数
5. 响应字段:以 YApi 定义为准,补充 Step 1 中缺失的字段
6. 操作关联:将作表中关联接口列填入接口表中该接口的 YApi 编号(ID),作为两张表的精确交叉引用;禁止填写 service 函数名,函数名在代码生成阶段按项目规范生成
7. 必填/选填:以 YApi 定义为准,覆盖 Step 1 中留空的必填标注
8. 枚举值:以 YApi 定义为准,覆盖 Step 1 中的推断枚举

差异处理:
- 当 YApi 字段与 Step 1 推断不一致时,以 YApi 为准,在备注中记录差异(如"YApi 字段名为 userCount(非 memberCount)")
- 当 YApi 缺少 Step 1 中策划明确要求的字段时,保留策划字段,备注"YApi 未定义,保留策划需求"
- 当 YApi 有 Step 1 中未提及的接口(如下拉数据源),新增到接口表

YApi 信息不完整的备注规则:
YApi 接口文档经常信息不完整(字段类型为 null、缺少参数、接口状态为"未完成"等),不视为阻断问题。YApi 没有定义的内容不加、不补、不猜,只做备注:

缺失情况 处理方式 备注示例
字段类型为 null 保留字段,按策划语义推断类型 "YApi 类型为 null,按策划推断为 text"
缺少分页参数 不补充,只备注 "YApi 未定义分页参数"
接口状态为"未完成" 正常使用,标注接口状态 "YApi 状态:未完成,字段可能变更"
请求参数缺失 不补充,只备注 "YApi 未定义请求参数"
响应字段缺失 不补充,只备注 "YApi 未定义响应字段"
枚举值缺失 按策划描述补充,标注来源 "YApi 未定义枚举,按策划补充:0-禁用,1-启用"

> 原则:信息不完整不阻断流程,YApi 没有的不加,策划有的保留,备注清楚即可。具体代码生成时结合项目规范和模板处理。

更新元数据:将 step 更新为 2,stepStatus 更新为 done,updatedAt 更新为当前日期。

> 此步骤可选。若用户跳过,直接使用 Step 1 的描述生成代码(接口信息可能不完整)。

Step 3:代码生成

根据页面描述 + 项目规范 + 组件 API 生成列表页代码。

输入:
- Step 1/2 输出的页面描述
- docs/list-page-convention.md(项目规范)
- pro-table / modal-form skill(组件 API)

输出:
- src/pages/{Module}/{PageName}/index.jsx(页面代码)
- src/services/{module}.js(接口函数,追加到已有文件)
- src/routes/index.jsx(路由配置,追加到已有文件)

流程:

阶段一:读取规范
1. 读取 docs/list-page-convention.md 获取规范和模板
2. 读取 docs/route-convention.md 获取路由规范
3. 读取 docs/service-convention.md 获取接口定义规范
4. 检查 available_skills 中是否有 pro-table 和 modal-form skill,有则必须在同一轮对话中依次激活(先 pro-table 再 modal-form),获取组件 API 和字段使用技巧。激活后 skill 内容会在上下文中累积,无需分两轮加载

阶段二:接口函数(先于页面生成)
5. 读取 src/services/{module}.js,根据 spec 接口表 + docs/service-convention.md 规范,追加接口函数
6. 向用户输出追加的接口函数清单,等待确认

阶段三:路由配置
7. 读取 src/routes/index.jsx,根据 docs/route-convention.md 规范,追加路由配置
8. 向用户输出路由变更,等待确认

阶段四:页面代码
9. 根据页面描述填充模板,生成页面代码
10. 向用户输出页面代码 + 问题清单(需要补充的细节、拿不准的点),等待确认后再写入文件

问题清单格式:

使用编号表格,用户按编号回复即可:

# 类别 问题 选项 / 说明
1 字段 status 字段用 valueEnum 还是 options? A) valueEnum(带状态色) B) options(保持顺序)
2 接口 列表接口未定义分页参数,是否按项目规范补充? 是 / 否,手动指定参数名
3 交互 编辑时是否需要请求详情接口回填? A) 需要(列表数据可能不完整) B) 不需要(列表已返回全部字段)
  • 类别:字段 / 接口 / 交互 / 样式 / 其他,方便用户快速定位
  • 选项 / 说明:提供可选方案时列出选项,开放性问题写说明
  • 用户回复格式:1-A, 2-是, 3-需要,因为...

阶段五:规范合规检查

  1. 代码写入文件后,对照以下检查清单逐项验证,输出合规报告:

ProTable 检查:

# 检查项 规范来源
1 ProTable 直接作为最外层返回,无多余容器包裹 list-page-convention §2
2 设置了 scroll={{ width: '100%' }} list-page-convention §2
3 每个 column 都设置了 width list-page-convention §2
4 操作列 key: 'action',valueType: 'option' list-page-convention §2
5 单条删除用了 Popconfirm 确认 list-page-convention §2
6 批量删除用了 Modal.confirm 并展示选中数量 list-page-convention §2
7 危险操作按钮用 <Button type="link" danger style={{ padding: 0 }}> list-page-convention §2
8 rowSelection 设置了 preserveSelectedRowKeys: true list-page-convention §2
9 分页参数映射:params.current → pageNum,不传 current list-page-convention §2
10 无搜索字段时设置了 search={false} pro-table skill
11 rowKey 已指定,使用后端返回的主键字段名 list-page-convention §8

ModalForm 检查:

# 检查项 规范来源
12 使用 trigger 触发,非 open/onOpenChange 手动控制 list-page-convention §3
13 设置了 layout="horizontal" list-page-convention §3
14 弹窗组件抽离到主函数外部 list-page-convention §3
15 BetaSchemaForm 设置了 layoutType="Embed" modal-form skill
16 每个 BetaSchemaForm column 设置了 width list-page-convention §3
17 新建/编辑通过 initialValues?.id 判断 list-page-convention §3
18 枚举字段使用 request 属性(非手动 useEffect + useState) list-page-convention §3

Service 检查:

# 检查项 规范来源
19 接口路径加了 /api 前缀 service-convention §2
20 函数命名符合 {verb}{Module}{Business} 格式 service-convention §3
21 POST 请求用 { data },GET 请求用 { params } service-convention §4
22 导出接口设置了 responseType: 'blob' + getResponse: true + blobData2File service-convention §4.4
23 上传接口使用了 jsonToFormData 或 postFormData service-convention §4.3

路由检查:

# 检查项 规范来源
24 一级分组 path 以 / 开头,二级路由 path 不加 / route-convention §7
25 component 路径使用 @/pages/ 别名,无扩展名 route-convention §7
26 设置了 exact: true route-convention §4

导入路径检查:

# 检查项 规范来源
27 页面中 service 导入路径为 @/services/{module},与文件按路径首段拆分一致 service-convention §1
28 无未使用的导入 通用

输出格式:

# 检查项 结果 说明
1 scroll 设置 ✅ / ❌ 如 ❌:缺少 scroll={{ width: '100%' }}
... ... ... ...
  • 全部 ✅ → 直接进入阶段六
  • 有 ❌ → 修复后重新检查,最多 3 轮;3 轮后仍有问题则列出剩余项让用户决定

阶段六:收尾
12. 用户确认所有代码后,将 spec 文件的 step 更新为 3,stepStatus 更新为 done,同步更新注册表

> 核心原则:每个阶段输出后都向用户反馈,遇到问题不闷头自己找方案,而是列出问题让用户决定。

代码生成参考策略:

  • 直接用模板 + 规范 + skill 生成代码,不主动去读项目中已有的页面作为参考
  • 遇到拿不准的点(模板未覆盖的模式、规范未明确的细节),列在问题清单中让用户拿主意,不自行翻老页面找答案
  • 若认为参考某个已有页面会有帮助,向用户提出建议,由用户决定是否提供参考页面及参考哪个页面
  • 禁止自行选择参考页面:已有页面的实现质量未知,参考不当反而引入错误模式

路由配置规则:
- 必须读取 docs/route-convention.md,按规范确定路由归属和配置格式
- 根据 spec 中的模块和路由路径,判断页面归属哪个一级分组
- 若一级分组已存在,在其 routes 下追加;若不存在,按规范新建一级分组
- 禁止自行推断一级分组归属,无法确定时必须向用户确认

Skill 使用策略(有则必用,无则降级):

情况 处理方式
pro-table + modal-form 均已安装 必须激活,结合 skill 中的组件 API 和字段技巧编写代码
仅安装其中一个 激活已安装的 skill,未安装的按项目规范和模板处理
均未安装 仅按项目规范 + 模板生成,不猜测未知的组件属性

为什么已安装时必须激活:
- Skill 中包含组件 API 的细节和字段使用技巧(如 search={false} 关闭搜索栏、valueEnum 与 options 的选择、fieldProps 配置等),仅参考项目规范和模板可能遗漏
- 激活 skill 后,以 skill 中的 API 为准,项目规范为框架约束,模板为结构参考,三者结合生成代码

常见问题

5 问
答案由本站依据条目字段整理
生成工作流怎么安装?

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

生成工作流支持哪些客户端?

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

生成工作流权限高吗,安全吗?

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

生成工作流收费吗?

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

生成工作流用什么许可证?

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

热门专题

按场景挑技能
全部专题 →

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