一键导入
mock-data-gen
按表结构 / struct / TS interface / JSON shape 生成假数据与测试种子数据,支持 JSON / SQL INSERT / CSV / NDJSON 输出格式。触发词:/mock-data-gen、帮我生成测试数据、帮我造数据、生成假数据、生成种子数据。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
按表结构 / struct / TS interface / JSON shape 生成假数据与测试种子数据,支持 JSON / SQL INSERT / CSV / NDJSON 输出格式。触发词:/mock-data-gen、帮我生成测试数据、帮我造数据、生成假数据、生成种子数据。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
把 Claude Code 汉化 —— 让 Claude 默认用中文回复,并给每个工具调用加中文 tooltip 提示。当用户想"汉化 Claude Code""让 Claude 说中文""装中文命令提示""localize Claude Code to Chinese"时使用。
列出可清理的本地分支(已合并 / 陈旧),供用户确认后再删。当用户说"清理分支 / 哪些分支可以删 / 列出过期分支 / 整理 git 分支 / 哪些分支可以清掉"时触发。
把一个函数/代码片段/diff 写成一首俳句或打油诗,抓住代码的「神韵」。当用户说「给这段代码写首诗」、「code-haiku」、「把这个函数写成俳句」、「这个 diff 怎么用诗表达」时触发。
把一个文件的修改史讲成故事——谁、何时、为何改了它。当用户说「讲讲这个文件的故事 / git-blame-story / 这个文件经历了什么 / 追溯文件历史 / 帮我看看这个文件的来龙去脉」时触发。
扫描 Dockerfile 的体积/安全/缓存/最佳实践问题并给出中文修法。当用户说"帮我检查 Dockerfile / Dockerfile 有没有问题 / 审查 Dockerfile / dockerfile-doctor"时触发。
命名困难症救星。给一段逻辑/用途描述 + 语言 → 建议好的变量/函数/类/文件/常量/布尔名,中英对照解释。触发词:'/naming-buddy'、'帮我起个名字'、'这个变量叫什么好'、'给这个函数命名'、'命名建议'。
| name | mock-data-gen |
| description | 按表结构 / struct / TS interface / JSON shape 生成假数据与测试种子数据,支持 JSON / SQL INSERT / CSV / NDJSON 输出格式。触发词:/mock-data-gen、帮我生成测试数据、帮我造数据、生成假数据、生成种子数据。 |
把 SQL CREATE TABLE、Go/GORM struct、TypeScript interface、JSON 样例或自然语言字段描述,
转换成 N 条真实感测试数据,输出为 JSON 数组 / SQL INSERT / CSV / NDJSON,
字段值符合类型、约束与业务语义,唯一键不重复,外键保持引用一致。
所有生成数据均为假数据,仅供开发测试使用,不含真实 PII。
用户说:
/mock-data-gen从用户处拿到以下信息(缺什么问什么,再追问一次即可,不要多轮打扰):
| 输入项 | 说明 | 缺省值 |
|---|---|---|
| 结构定义 | SQL CREATE TABLE / Go struct / TS interface / JSON shape / 自然语言字段列表 | 必填 |
| 条数 N | 需要生成多少条 | 默认 10 |
| 输出格式 | json / sql / csv / ndjson | 默认 json |
| 语言偏好 | 中文场景(中文姓名/国内手机号/省市地址等)还是国际化 | 默认按字段名/表名推断 |
| 外键约束 | 若有外键,提供父表已有的合法 ID 范围或列表 | 未提供时自动生成连续 ID |
NOT NULL、DEFAULT、UNIQUE、CHECK、枚举(ENUM(...))、主键、外键、长度限制(VARCHAR(N))。string/int/time.Time/*Type 等)、GORM tag(column / type / not null / unique / default / size)、json tag 作为字段名。string/number/boolean/Date/字面量联合 'a' | 'b'/可选 ?)。VARCHAR(11) UNIQUE NOT NULL)。| 字段名关键词(模糊匹配) | 生成策略 |
|---|---|
name / user_name / 姓名 | 真实感人名(中文 or 英文,按语言偏好) |
email / 邮箱 | <拼音或英文>@<域名>.com 格式,保证 @ 前唯一 |
phone / mobile / 手机 | 中文场景:1[3-9]XXXXXXXXX(11 位);国际:+1-XXX-XXX-XXXX |
id_card / 身份证 | 18 位格式(前 17 位数字 + 1 位数字或 X),标注为假 |
id / user_id / _id | 从 1 开始的自增整数(或 UUID v4,依类型判断) |
created_at / updated_at / date / 时间 | ISO 8601 时间,created_at ≤ updated_at,时序合理 |
age / 年龄 | 18–65 之间的整数 |
amount / price / 金额 / 费用 | 正数浮点,保留 2 位小数 |
status / state / type | 从枚举/联合类型中随机取合法值 |
address / 地址 | 中文场景:省 + 市 + 区 + 街道(均为真实省市名,门牌号为假) |
province / 省 | 中国真实省/直辖市名 |
city / 市 | 与 province 对应的城市名 |
content / description / remark / 备注 | 1–3 句中文或英文占位文字 |
url / avatar / image | https://example.com/<slug> 格式占位 URL |
score / rating | 0–100(score)或 1–5(rating)浮点 |
is_ / has_ / enable | boolean,随机 true/false |
gender / sex / 性别 | male/female 或 男/女,依枚举定义 |
password / 密码 | <占位> 字符串 + 标注"非真实凭证" |
NOT NULL / 非可选字段:不生成 null。UNIQUE / unique:true:该字段 N 条中不重复。VARCHAR(N) / size:N:生成值长度 ≤ N。ENUM(a,b,c) / 字面量联合:只从合法值中取。DEFAULT <val>:若字段可省略,可直接使用 default;若需显式填,使用 default 值。created_at ≤ updated_at(如两者均有)。[
{
"id": 1,
"name": "张伟",
"email": "zhangwei@example.com",
"phone": "13812345678",
"created_at": "2025-03-15T08:30:00Z"
}
]
-- 假数据,仅供测试
INSERT INTO `users` (`id`, `name`, `email`, `phone`, `created_at`) VALUES
(1, '张伟', 'zhangwei@example.com', '13812345678', '2025-03-15 08:30:00'),
(2, '李娜', 'lina@example.com', '15923456789', '2025-04-02 14:15:00');
id,name,email,phone,created_at
1,张伟,zhangwei@example.com,13812345678,2025-03-15T08:30:00Z
2,李娜,lina@example.com,15923456789,2025-04-02T14:15:00Z
{"id":1,"name":"张伟","email":"zhangwei@example.com","phone":"13812345678","created_at":"2025-03-15T08:30:00Z"}
{"id":2,"name":"李娜","email":"lina@example.com","phone":"15923456789","created_at":"2025-04-02T14:15:00Z"}
输入结构:
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL, -- 外键,users.id
order_no VARCHAR(20) UNIQUE NOT NULL,
status ENUM('pending','paid','shipped','done') NOT NULL DEFAULT 'pending',
amount DECIMAL(10,2) NOT NULL,
note TEXT,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
**用户需求:**生成 5 条,SQL INSERT 格式,user_id 取自 users.id 范围 1–3,中文场景。
输出:
-- ⚠️ 以下均为假数据,仅供开发测试,请勿用于生产环境
INSERT INTO `orders` (`id`, `user_id`, `order_no`, `status`, `amount`, `note`, `created_at`, `updated_at`) VALUES
(1, 2, 'ORD-20250315-00001', 'paid', 128.50, '请尽快发货', '2025-03-15 09:12:00', '2025-03-15 11:30:00'),
(2, 1, 'ORD-20250402-00002', 'pending', 59.90, NULL, '2025-04-02 14:05:00', '2025-04-02 14:05:00'),
(3, 3, 'ORD-20250410-00003', 'shipped', 299.00, '易碎品,轻拿轻放', '2025-04-10 08:00:00', '2025-04-11 10:20:00'),
(4, 2, 'ORD-20250418-00004', 'done', 45.00, NULL, '2025-04-18 16:30:00', '2025-04-19 09:00:00'),
(5, 1, 'ORD-20250501-00005', 'paid', 780.00, '劳动节促销订单', '2025-05-01 10:00:00', '2025-05-01 10:45:00');
说明:
order_no 5 条各不相同(UNIQUE 约束满足)user_id 从 {1, 2, 3} 中随机取(外键引用一致)status 只取 ENUM 中的合法值created_at ≤ updated_at(时序合理)amount 保留 2 位小数note 允许 NULL(TEXT 无 NOT NULL)当字段或用户需求涉及中国本地化时,按以下规则生成:
| 字段类型 | 生成规则 |
|---|---|
| 中文姓名 | 常见百家姓(王/李/张/刘/陈…)+ 常见名字(伟/芳/娜/秀英…) |
| 手机号 | 1[3-9]\d{9}(11 位),首位 13/14/15/16/17/18/19,第三位不超出运营商号段 |
| 身份证 | 18 位格式:6 位地区码 + 8 位生日(YYYYMMDD)+ 3 位顺序码 + 1 位校验码(数字或 X),输出时附注"⚠️ 假身份证号,仅供测试" |
| 省市区 | 真实省/直辖市/自治区名;城市与省份对应(不会出现"上海市广州市") |
| 详细地址 | <省><市><区> <真实路名>路 <N> 号 <M> 室(路名为占位,不暗示真实地址) |
| 公司名称 | <城市><行业>有限公司 格式(均为虚构) |
| 银行卡 | 16–19 位数字,附注"⚠️ 假卡号,仅供测试",不生成通过 Luhn 校验的真实卡号 |
重要:中文手机号、身份证号、银行卡号均为格式合规但内容虚构的假数据, 明确标注"仅供测试",不可作为真实凭证使用。
若以下关键信息缺失且影响生成质量,一次性列出所有疑问:
type 无枚举约束):列出几个可能的取值并让用户选择生成后按以下结构回复:
## 生成结果
> ⚠️ 以下均为假数据,仅供开发/测试使用。请勿将手机号、身份证号等字段误用于真实场景。
<生成的数据块>
## 说明
- 条数:N 条
- 格式:JSON / SQL INSERT / CSV / NDJSON
- 关键约束处理:
- UNIQUE 字段 <字段名>:N 条中不重复
- 外键 <字段名> → <父表>(<父表主键范围>)
- 枚举 <字段名>:只取 <合法值列表> 中的值
- 时序:<created_at> ≤ <updated_at>
- 如需调整(条数 / 格式 / 字段分布 / 语言),直接告诉我
created_at ≤ updated_at;有 start_date 和 end_date 时 start ≤ end。CHECK (end_date > start_date + 7))会尽力遵守,
但不保证 100% 机器可校验;生成后请人工复核。