{"id":"d53066af-c74f-46b3-b33d-db701f3fa700","entityType":"agent","slug":"clawhub-kokxi-qa-test-data-engineering","name":"qa-test-data-engineering","canonicalUrl":"https://www.xpersona.co/agent/clawhub-kokxi-qa-test-data-engineering","canonicalPath":"/agent/clawhub-kokxi-qa-test-data-engineering","generatedAt":"2026-10-11T03:53:29.218Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T23:56:08.483Z","emptyReason":null},"description":"当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。 触发场景：造数、批量造数、数据构造、测试数据脱敏、测试数据合规、数据工厂、造1000条、造大量数据、环境数据不足需要批量构造时。 Use when the user asks about: bulk test data generation, production data masking and anonymization, data compliance, and data factory architecture. Skill: qa-test-data-engineering Owner: kokxi Summary: 当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。 触发场景：造数、批量造数、数据构造、测试数据脱敏、测试数据合规、数据工厂、造1000条、造大量数据、环境数据不足需要批量构造时。 Use when the user asks about: bulk test data generation, production data masking and anonymization, data compliance, and data factor","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s170jw3s1atcj5jwhqb4r7v7eh8912kp:qa-test-data-engineering","sourceUrl":"https://clawhub.ai/kokxi/qa-test-data-engineering","homepage":"https://clawhub.ai/kokxi/skills/qa-test-data-engineering","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/kokxi/qa-test-data-engineering","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/kokxi/skills/qa-test-data-engineering","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T23:56:08.483Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T23:56:08.483Z","emptyReason":null},"stars":null,"forks":null,"downloads":1225,"packageName":null,"latestVersion":"1.8.0","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T23:56:08.423Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T23:56:08.483Z","lastCrawledAt":"2026-10-10T23:56:08.423Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T23:56:08.423Z","lastVerifiedAt":null,"highlights":[{"version":"1.8.0","createdAt":"2026-09-29T04:29:17.577Z","changelog":"**Changelog for qa-test-data-engineering v1.8.0** - Major refactor: Metadata and structure unified; skill information and triggers standardized. - Data masking (脱敏) details moved out of SKILL.md into a dedicated reference file for better modularity and reduced context size. - Added reference to new documentation: references/data-masking.md. - Deprecated and removed skill-card.md. - SKILL.md now emphasizes upstream/downstream relations and includes richer metadata fields.","fileCount":4,"zipByteSize":5825},{"version":"1.7.7","createdAt":"2026-09-27T14:42:57.360Z","changelog":"1.7.7","fileCount":3,"zipByteSize":5201},{"version":"1.7.6","createdAt":"2026-09-01T12:48:26.160Z","changelog":"显示名改中文","fileCount":3,"zipByteSize":5575},{"version":"1.7.5","createdAt":"2026-08-30T15:21:04.651Z","changelog":"1.7.5: 版本号升级","fileCount":3,"zipByteSize":5333},{"version":"1.7.0","createdAt":"2026-08-16T14:33:25.153Z","changelog":"- Updated version to 1.7.0. - Removed the file skill-card.md. - No changes to features or documentation content in SKILL.md besides version bump.","fileCount":3,"zipByteSize":5215},{"version":"1.6.3","createdAt":"2026-08-12T15:30:01.277Z","changelog":"- Added slug and displayName fields to SKILL.md for improved skill metadata. - Updated version to 1.6.3. - Removed the redundant file skill-card.md. - No changes to technical features or user-facing functionality.","fileCount":3,"zipByteSize":4994},{"version":"1.6.0","createdAt":"2026-07-06T17:32:55.515Z","changelog":"Version 1.6.0 introduces enhanced standardization and traceability for test data engineering. - Added unique traceability IDs (DATA-XXXX) for each data generation scheme. - Introduced \"categories\", \"depth_requirement_quantification\", and \"error_recovery_guidance\" metadata to clarify usage and recovery strategies. - Updated output format to include traceability information. - Removed skill-card.md file.","fileCount":3,"zipByteSize":5119},{"version":"1.5.0","createdAt":"2026-06-29T12:36:45.984Z","changelog":"qa-test-data-engineering v1.5.0 - Refined the skill description to clarify scope and emphasize engineering/data factory approaches and compliance requirements. - Standardized and structured input/output formats for easier integration. - Marked key documentation sections that are synchronized with related skills for consistency. - Minor updates to section wording and formatting for clarity. - Removed the redundant skill-card.md file.","fileCount":3,"zipByteSize":4813}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s170jw3s1atcj5jwhqb4r7v7eh8912kp:qa-test-data-engineering","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-test-data-engineering/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-test-data-engineering/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-test-data-engineering/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-test-data-engineering/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-test-data-engineering/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-test-data-engineering/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T03:53:29.217Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-test-data-engineering/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-test-data-engineering/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-test-data-engineering/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-kokxi-qa-test-data-engineering/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T23:56:08.483Z","emptyReason":null},"readme":"Skill: qa-test-data-engineering\n\nOwner: kokxi\n\nSummary: 当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。 触发场景：造数、批量造数、数据构造、测试数据脱敏、测试数据合规、数据工厂、造1000条、造大量数据、环境数据不足需要批量构造时。 Use when the user asks about: bulk test data generation, production data masking and anonymization, data compliance, and data factory architecture.\n\nTags: latest:1.8.0\n\nVersion history:\n\nv1.8.0 | 2026-09-29T04:29:17.577Z | auto\n\n**Changelog for qa-test-data-engineering v1.8.0**\n\n- Major refactor: Metadata and structure unified; skill information and triggers standardized.\n- Data masking (脱敏) details moved out of SKILL.md into a dedicated reference file for better modularity and reduced context size.\n- Added reference to new documentation: references/data-masking.md.\n- Deprecated and removed skill-card.md.\n- SKILL.md now emphasizes upstream/downstream relations and includes richer metadata fields.\n\nv1.7.7 | 2026-09-27T14:42:57.360Z | user\n\n1.7.7\n\nv1.7.6 | 2026-09-01T12:48:26.160Z | user\n\n显示名改中文\n\nv1.7.5 | 2026-08-30T15:21:04.651Z | user\n\n1.7.5: 版本号升级\n\nv1.7.0 | 2026-08-16T14:33:25.153Z | auto\n\n- Updated version to 1.7.0.\n- Removed the file skill-card.md.\n- No changes to features or documentation content in SKILL.md besides version bump.\n\nv1.6.3 | 2026-08-12T15:30:01.277Z | auto\n\n- Added slug and displayName fields to SKILL.md for improved skill metadata.\n- Updated version to 1.6.3.\n- Removed the redundant file skill-card.md.\n- No changes to technical features or user-facing functionality.\n\nv1.6.0 | 2026-07-06T17:32:55.515Z | auto\n\nVersion 1.6.0 introduces enhanced standardization and traceability for test data engineering.\n\n- Added unique traceability IDs (DATA-XXXX) for each data generation scheme.\n- Introduced \"categories\", \"depth_requirement_quantification\", and \"error_recovery_guidance\" metadata to clarify usage and recovery strategies.\n- Updated output format to include traceability information.\n- Removed skill-card.md file.\n\nv1.5.0 | 2026-06-29T12:36:45.984Z | auto\n\nqa-test-data-engineering v1.5.0\n\n- Refined the skill description to clarify scope and emphasize engineering/data factory approaches and compliance requirements.\n- Standardized and structured input/output formats for easier integration.\n- Marked key documentation sections that are synchronized with related skills for consistency.\n- Minor updates to section wording and formatting for clarity.\n- Removed the redundant skill-card.md file.\n\nv1.4.1 | 2026-06-25T16:57:28.772Z | auto\n\n- 简化并优化了 skill 描述，使触发条件和定位更加清晰。\n- 在数据清理章节新增了详细的 SQL 安全警告和执行前置条件提醒，强调慎用生产环境。\n- 删除了 skill-card.md 文件，精简维护内容。\n- 其余核心方法、策略与用例大体保持不变，整体结构更聚焦、易读。\n\nv1.4.0 | 2026-06-24T05:13:38.964Z | auto\n\nqa-test-data-engineering 1.4.0\n\n- 扩展 description，强调批量造数、数据合规、测试数据平台、数据管道等新关键字，及与测试环境管理技能的分工。\n- 优化 when_to_use 触发条件，新增“批量造数”“敏感数据”等场景词。\n- 移除 skill-card.md 文件，无功能影响。\n- 其余文档和方案内容保持一致。\n\nv1.3.0 | 2026-06-23T15:25:08.244Z | auto\n\nVersion 1.3.0\n\n- 全面优化SKILL.md，详细梳理测试数据工程标准流程与实践方法。\n- 明确数据构造方法，涵盖手动构造、数据工厂、数据库脚本和API构造。\n- 增加多种数据脱敏规则与Python实现示例。\n- 补充数据清理策略、SQL脚本与数据管理命名规范。\n- 提供应用示例和数据管理检查指引，强化实操与规范性。\n\nArchive index:\n\nArchive v1.8.0: 4 files, 5825 bytes\n\nFiles: references/data-masking.md (1756b), skill-card.md (1742b), SKILL.md (7065b), _meta.json (143b)\n\nFile v1.8.0:SKILL.md\n\n---\nname: qa-test-data-engineering\ndescription: >-\n  当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。 触发场景：造数、批量造数、数据构造、测试数据脱敏、测试数据合规、数据工厂、造1000条、造大量数据、环境数据不足需要批量构造时。 Use when the user asks about: bulk test data generation, production data masking and anonymization, data compliance, and data factory architecture.\nlicense: MIT\nallowed-tools: Read Grep Glob Bash\nmetadata:\n  display-name: \"Test Data Engineering\"\n  version: \"1.8.0\"\n  when-to-use: \"用户说\\\"造数\\\"、\\\"批量造数\\\"、\\\"数据构造\\\"、\\\"测试数据脱敏\\\"、\\\"测试数据合规\\\"、\\\"数据工厂\\\"、\\\"造1000条\\\"、\\\"造大量数据\\\"、需要管理测试数据、环境数据不足需要批量构造时\"\n  related-skills: \"{\\\"upstream\\\":[\\\"qa-test-env-data\\\",\\\"qa-req-deconstruction\\\"],\\\"downstream\\\":[\\\"qa-execution-observation\\\",\\\"qa-api-testing\\\"]}\"\n  references: \"[\\\"references/data-masking.md\\\"]\"\n  input-format: \"{\\\"required\\\":[{\\\"name\\\":\\\"测试策略\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-test-strategy-design的测试策略\\\"},{\\\"name\\\":\\\"数据需求\\\",\\\"type\\\":\\\"string\\\",\\\"description\\\":\\\"测试数据的类型和规模需求\\\"}],\\\"optional\\\":[{\\\"name\\\":\\\"数据源信息\\\",\\\"type\\\":\\\"string\\\",\\\"description\\\":\\\"可用数据源描述\\\"}]}\"\n  output-format: \"{\\\"traceability\\\":[\\\"每套造数方案带唯一ID（DATA-XXXX）\\\"],\\\"structure\\\":[{\\\"data_strategy\\\":\\\"测试数据策略\\\"},{\\\"data_generation\\\":\\\"数据生成方案\\\"},{\\\"data_mask_rules\\\":\\\"数据脱敏规则\\\"},{\\\"data_management\\\":\\\"数据管理流程\\\"}]}\"\n  error-recovery-guidance: \"{\\\"on_failure\\\":\\\"造数方案遗漏合规要求时回退到需求解构补充\\\",\\\"retry_behavior\\\":\\\"补充合规要求后重新设计造数方案\\\"}\"\n  categories: \"[\\\"Development\\\",\\\"Testing\\\",\\\"DevOps\\\"]\"\n  depth-requirement: \"{\\\"reference_value\\\":\\\"根据数据需求调整造数深度：简单×1/中等×2/复杂×3\\\",\\\"minimum\\\":\\\"至少覆盖数据构造、脱敏、合规3个维度\\\"}\"\n---\n> ⚠️ 本技能单独使用效果有限，建议配合完整技能集（12 步工作流）使用。安装：npx skills add Kokxi/qa-test-skills\n\n# 测试数据工程\n\n## 核心原则\n\n测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\n\n## 数据构造方法\n\n### 手动构造\n\n```text\n适用场景：\n├─ 少量数据\n├─ 复杂业务数据\n├─ 一次性数据\n└─ 调试用途\n\n方法：\n├─ 数据库直接插入\n├─ 管理后台创建\n├─ 接口调用创建\n└─ 脚本批量创建\n```\n\n### 数据工厂\n\n```text\n适用场景：\n├─ 批量数据\n├─ 标准化数据\n├─ 重复性数据\n└─ 自动化测试\n\n工具：\n├─ Faker（Python/JS）\n├─ Mockaroo（在线）\n├─ Factory Bot（Ruby）\n└─ 自建工厂类\n```\n\n### 数据库脚本\n\n```sql\n-- 示例：用户数据构造\nINSERT INTO users (username, email, phone, status, created_at)\nVALUES \n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\n```\n\n### API构造\n\n```python\n# 示例：通过API构造订单数据\ndef create_test_order(user_id, product_id, quantity=1):\n    response = requests.post(\n        f\"{BASE_URL}/orders\",\n        json={\n            \"user_id\": user_id,\n            \"product_id\": product_id,\n            \"quantity\": quantity\n        },\n        headers={\"Authorization\": f\"Bearer {token}\"}\n    )\n    return response.json()[\"order_id\"]\n```\n\n## 加载时机\n\n| 什么时候读 | 读哪个 |\n|-----------|--------|\n| 做脱敏规则与实现时 | [`references/data-masking.md`](references/data-masking.md) |\n\n> `数据脱敏`的完整内容已下沉至 `references/data-masking.md`，避免每次触发都占用上下文。\n\n## 数据清理\n\n> 📌 本节与 qa-test-env-data「数据清理」内容同步，修改时请同步更新两处。\n\n### 清理策略\n\n```text\n├─ 按用例清理\n│   ├─ 每个用例执行后清理\n│   ├─ 优点：数据隔离好\n│   └─ 缺点：效率低\n│\n├─ 按模块清理\n│   ├─ 每个模块测试后清理\n│   ├─ 优点：效率较高\n│   └─ 缺点：隔离性一般\n│\n├─ 按批次清理\n│   ├─ 每个批次测试后清理\n│   ├─ 优点：效率高\n│   └─ 缺点：隔离性差\n│\n└─ 定期清理\n    ├─ 定期清理历史数据\n    ├─ 优点：保持数据量可控\n    └─ 缺点：可能影响测试\n```\n\n### 清理实现\n\n> ⚠️ **安全警告**：以下 SQL 清理示例**仅适用于隔离的测试环境**，切勿在生产数据库执行。\n> 执行前必须确认：\n> 1. 目标数据库已确认为测试环境\n> 2. 先用 `SELECT COUNT(*)` 预览受影响行数\n> 3. 使用事务包裹（`BEGIN; DELETE ...; ROLLBACK;`）做无害验证\n> 4. 数据表有 `is_test` 等明确测试标记字段\n> 5. 如无把握，先向 DBA 确认清理范围\n\n```sql\n-- 示例：清理测试数据\n-- 方法1：按时间清理\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\n\n-- 方法2：按标记清理\nDELETE FROM orders WHERE is_test = 1;\n\n-- 方法3：按用户清理\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);\n```\n\n## 数据管理规范\n\n### 命名规范\n\n```text\n测试用户：\n├─ 格式：test_[角色]_[序号]\n├─ 示例：test_user_001, test_admin_001\n└─ 标记：is_test = 1\n\n测试数据：\n├─ 格式：[类型]_test_[序号]\n├─ 示例：order_test_001, product_test_001\n└─ 标记：is_test = 1\n```\n\n### 数据生命周期\n\n```text\n├─ 构造：测试前准备数据\n├─ 使用：测试中使用数据\n├─ 验证：测试后验证数据\n├─ 清理：测试后清理数据\n└─ 归档：历史数据归档\n```\n\n## 输出示例\n\n**构造100条用户注册测试数据**\n→ 手动构造：录入10条核心数据（正常用户/边界值）\n→ 数据工厂：编写SQL脚本批量生成80条\n→ API构造：调用注册接口自动化生成剩余\n\n**生产数据脱敏用于测试**\n→ 脱敏规则：手机号（中间4位***）、身份证（生日****）、姓名（张三）\n→ 脱敏实现：Docker部署Greenplum，配置脱敏策略执行\n\n## 检查清单\n\n测试数据管理完成后检查：\n- [ ] 数据构造方法是否设计？\n- [ ] 脱敏规则是否定义？\n- [ ] 清理机制是否实现？\n- [ ] 命名规范是否统一？\n- [ ] 数据生命周期是否管理？\n- [ ] 数据可追溯性是否保证？\n\nFile v1.8.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.8.0\",\n  \"publishedAt\": 1790656157577\n}\n\nFile v1.8.0:references/data-masking.md\n\n# 测试数据脱敏详解\n\n> 本文是 `qa-test-data-engineering` 的**测试数据脱敏详解**。做脱敏规则与实现时读本文；\n其余部分留在 SKILL.md，不必读本文。\n\n---\n\n\n> 📌 本节与 qa-test-env-data「数据脱敏」内容同步，修改时请同步更新两处。qa-test-env-data 为简化版，完整版见此处。\n\n### 脱敏规则\n\n```text\n个人信息：\n├─ 手机号：138****1234\n├─ 身份证：110***********1234\n├─ 邮箱：test****@example.com\n├─ 姓名：*三\n├─ 地址：北京市***\n└─ 银行卡：6222****1234\n\n业务数据：\n├─ 金额：保留整数位，小数随机\n├─ 订单号：保留格式，数字随机\n├─ 时间：保留格式，时间随机\n└─ 关联ID：保持关联关系\n```\n\n### 脱敏方法\n\n```text\n├─ 替换法：用*替换部分字符\n│   └─ 示例：138****1234\n│\n├─ 加密法：用加密算法处理\n│   └─ 示例：AES加密后存储\n│\n├─ 截断法：只保留部分字符\n│   └─ 示例：北京市***\n│\n├─ 随机法：用随机值替换\n│   └─ 示例：姓名随机生成\n│\n└─ 哈希法：用哈希值替换\n    └─ 示例：SHA256哈希\n```\n\n### 脱敏实现\n\n```python\n# 示例：Python脱敏函数\nimport hashlib\nimport random\n\ndef mask_phone(phone):\n    \"\"\"手机号脱敏：138****1234\"\"\"\n    return phone[:3] + \"****\" + phone[-4:]\n\ndef mask_id_card(id_card):\n    \"\"\"身份证脱敏：110***********1234\"\"\"\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\n\ndef mask_name(name):\n    \"\"\"姓名脱敏：*三\"\"\"\n    return \"*\" + name[-1]\n\ndef mask_email(email):\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\n    local, domain = email.split(\"@\")\n    return local[:4] + \"****@\" + domain\n```\n\nFile v1.8.0:skill-card.md\n\n## Description:\n\nGuides bulk test-data creation, data masking, and test-data lifecycle management for software testing.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and QA engineers use this skill to plan and generate repeatable test datasets, mask sensitive data, and manage test-data cleanup.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The optional command to install the broader skill set could fetch unreviewed code.\n\nMitigation: Verify the publisher and repository, and prefer a pinned or reviewed version before running it.\n\nRisk: Running example SQL or API operations against live systems could change production data.\n\nMitigation: Use isolated test environments and review the target and affected records before execution.\n\n## Reference(s):\n\n- [Test-data masking reference](artifact/references/data-masking.md)\n- [ClawHub skill release](https://clawhub.ai/kokxi/skills/qa-test-data-engineering)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Code, Configuration, SQL queries]\n\n**Output Format:** [Markdown with example SQL and Python code]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Test-data plans cover generation, masking, and lifecycle management, with a DATA-XXXX identifier for each plan.]\n\n## Skill Version(s):\n\n1.8.0 (source: skill metadata and ClawHub release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.7: 3 files, 5201 bytes\n\nFiles: skill-card.md (1649b), SKILL.md (8367b), _meta.json (143b)\n\nFile v1.7.7:SKILL.md\n\n---\nname: qa-test-data-engineering\nslug: qa-test-data-engineering\ndisplayName: Test Data Engineering\nversion: 1.7.7\ndescription: >-\n  当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。\n\nwhen_to_use: 用户说\"造数\"、\"批量造数\"、\"数据构造\"、\"测试数据脱敏\"、\"测试数据合规\"、\"数据工厂\"、\"造1000条\"、\"造大量数据\"、需要管理测试数据、环境数据不足需要批量构造时\nallowed-tools: Read Grep Glob Bash\nrelated_skills:\n  upstream:\n    - qa-test-env-data           # 输入：环境和数据管理策略\n    - qa-req-deconstruction      # 输入：需求分析确定数据需求\n  downstream:\n    - qa-execution-observation   # 输出：测试数据支持执行\n    - qa-api-testing             # 输出：数据构造用于接口测试\ninput_format:\n  required:\n    - name: 测试策略\n      type: object\n      description: 来自qa-test-strategy-design的测试策略\n    - name: 数据需求\n      type: string\n      description: 测试数据的类型和规模需求\n  optional:\n    - name: 数据源信息\n      type: string\n      description: 可用数据源描述\noutput_format:\n  traceability:\n    - 每套造数方案带唯一ID（DATA-XXXX）\n  structure:\n    - 测试用例表格：固定 9 列（用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\n    - 用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\n    - 覆盖率：标注口径（基于现有需求/输入文档），禁止\"全覆盖/100%\"绝对化表述；缺失模块标注\"未覆盖+原因\"\n    - data_strategy: 测试数据策略\n    - data_generation: 数据生成方案\n    - data_mask_rules: 数据脱敏规则\n    - data_management: 数据管理流程\ncategories: ['Development','Testing','DevOps']\ndepth_requirement_quantification:\n  reference_value: \"根据数据需求调整造数深度：简单×1/中等×2/复杂×3\"\n  minimum: \"至少覆盖数据构造、脱敏、合规3个维度\"\nerror_recovery_guidance:\n  on_failure: \"造数方案遗漏合规要求时回退到需求解构补充\"\n  retry_behavior: \"补充合规要求后重新设计造数方案\"\n---\n# 测试数据工程\n\n## 核心原则\n\n测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\n\n## 数据构造方法\n\n### 手动构造\n\n```text\n适用场景：\n├─ 少量数据\n├─ 复杂业务数据\n├─ 一次性数据\n└─ 调试用途\n\n方法：\n├─ 数据库直接插入\n├─ 管理后台创建\n├─ 接口调用创建\n└─ 脚本批量创建\n```\n\n### 数据工厂\n\n```text\n适用场景：\n├─ 批量数据\n├─ 标准化数据\n├─ 重复性数据\n└─ 自动化测试\n\n工具：\n├─ Faker（Python/JS）\n├─ Mockaroo（在线）\n├─ Factory Bot（Ruby）\n└─ 自建工厂类\n```\n\n### 数据库脚本\n\n```sql\n-- 示例：用户数据构造\nINSERT INTO users (username, email, phone, status, created_at)\nVALUES \n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\n```\n\n### API构造\n\n```python\n# 示例：通过API构造订单数据\ndef create_test_order(user_id, product_id, quantity=1):\n    response = requests.post(\n        f\"{BASE_URL}/orders\",\n        json={\n            \"user_id\": user_id,\n            \"product_id\": product_id,\n            \"quantity\": quantity\n        },\n        headers={\"Authorization\": f\"Bearer {token}\"}\n    )\n    return response.json()[\"order_id\"]\n```\n\n## 数据脱敏\n\n> 📌 本节与 qa-test-env-data「数据脱敏」内容同步，修改时请同步更新两处。qa-test-env-data 为简化版，完整版见此处。\n\n### 脱敏规则\n\n```text\n个人信息：\n├─ 手机号：138****1234\n├─ 身份证：110***********1234\n├─ 邮箱：test****@example.com\n├─ 姓名：*三\n├─ 地址：北京市***\n└─ 银行卡：6222****1234\n\n业务数据：\n├─ 金额：保留整数位，小数随机\n├─ 订单号：保留格式，数字随机\n├─ 时间：保留格式，时间随机\n└─ 关联ID：保持关联关系\n```\n\n### 脱敏方法\n\n```text\n├─ 替换法：用*替换部分字符\n│   └─ 示例：138****1234\n│\n├─ 加密法：用加密算法处理\n│   └─ 示例：AES加密后存储\n│\n├─ 截断法：只保留部分字符\n│   └─ 示例：北京市***\n│\n├─ 随机法：用随机值替换\n│   └─ 示例：姓名随机生成\n│\n└─ 哈希法：用哈希值替换\n    └─ 示例：SHA256哈希\n```\n\n### 脱敏实现\n\n```python\n# 示例：Python脱敏函数\nimport hashlib\nimport random\n\ndef mask_phone(phone):\n    \"\"\"手机号脱敏：138****1234\"\"\"\n    return phone[:3] + \"****\" + phone[-4:]\n\ndef mask_id_card(id_card):\n    \"\"\"身份证脱敏：110***********1234\"\"\"\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\n\ndef mask_name(name):\n    \"\"\"姓名脱敏：*三\"\"\"\n    return \"*\" + name[-1]\n\ndef mask_email(email):\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\n    local, domain = email.split(\"@\")\n    return local[:4] + \"****@\" + domain\n```\n\n## 数据清理\n\n> 📌 本节与 qa-test-env-data「数据清理」内容同步，修改时请同步更新两处。\n\n### 清理策略\n\n```text\n├─ 按用例清理\n│   ├─ 每个用例执行后清理\n│   ├─ 优点：数据隔离好\n│   └─ 缺点：效率低\n│\n├─ 按模块清理\n│   ├─ 每个模块测试后清理\n│   ├─ 优点：效率较高\n│   └─ 缺点：隔离性一般\n│\n├─ 按批次清理\n│   ├─ 每个批次测试后清理\n│   ├─ 优点：效率高\n│   └─ 缺点：隔离性差\n│\n└─ 定期清理\n    ├─ 定期清理历史数据\n    ├─ 优点：保持数据量可控\n    └─ 缺点：可能影响测试\n```\n\n### 清理实现\n\n> ⚠️ **安全警告**：以下 SQL 清理示例**仅适用于隔离的测试环境**，切勿在生产数据库执行。\n> 执行前必须确认：\n> 1. 目标数据库已确认为测试环境\n> 2. 先用 `SELECT COUNT(*)` 预览受影响行数\n> 3. 使用事务包裹（`BEGIN; DELETE ...; ROLLBACK;`）做无害验证\n> 4. 数据表有 `is_test` 等明确测试标记字段\n> 5. 如无把握，先向 DBA 确认清理范围\n\n```sql\n-- 示例：清理测试数据\n-- 方法1：按时间清理\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\n\n-- 方法2：按标记清理\nDELETE FROM orders WHERE is_test = 1;\n\n-- 方法3：按用户清理\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);\n```\n\n## 数据管理规范\n\n### 命名规范\n\n```text\n测试用户：\n├─ 格式：test_[角色]_[序号]\n├─ 示例：test_user_001, test_admin_001\n└─ 标记：is_test = 1\n\n测试数据：\n├─ 格式：[类型]_test_[序号]\n├─ 示例：order_test_001, product_test_001\n└─ 标记：is_test = 1\n```\n\n### 数据生命周期\n\n```text\n├─ 构造：测试前准备数据\n├─ 使用：测试中使用数据\n├─ 验证：测试后验证数据\n├─ 清理：测试后清理数据\n└─ 归档：历史数据归档\n```\n\n## 输出示例\n\n**构造100条用户注册测试数据**\n→ 手动构造：录入10条核心数据（正常用户/边界值）\n→ 数据工厂：编写SQL脚本批量生成80条\n→ API构造：调用注册接口自动化生成剩余\n\n**生产数据脱敏用于测试**\n→ 脱敏规则：手机号（中间4位***）、身份证（生日****）、姓名（张三）\n→ 脱敏实现：Docker部署Greenplum，配置脱敏策略执行\n\n## 检查清单\n\n测试数据管理完成后检查：\n- [ ] 数据构造方法是否设计？\n- [ ] 脱敏规则是否定义？\n- [ ] 清理机制是否实现？\n- [ ] 命名规范是否统一？\n- [ ] 数据生命周期是否管理？\n- [ ] 数据可追溯性是否保证？\n\nFile v1.7.7:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.7.7\",\n  \"publishedAt\": 1790520177360\n}\n\nFile v1.7.7:skill-card.md\n\n## Description:\n\nProvides Chinese-language guidance for generating bulk test data, masking sensitive data, and managing the test-data lifecycle.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nQA engineers and developers use this skill to plan and generate repeatable test datasets, specify masking rules for sensitive data, and design cleanup and data-management workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Sensitive production data may remain identifiable in test datasets.\n\nMitigation: Prefer synthetic data; use only approved, properly de-identified production data under applicable data-governance controls.\n\nRisk: Example data-generation or cleanup commands could affect unintended records.\n\nMitigation: Use isolated test environments and scoped credentials; review cleanup queries and preview affected rows before execution.\n\n## Reference(s):\n\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Code, SQL commands]\n\n**Output Format:** [Markdown with Python and SQL examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Test-data plans use DATA-XXXX identifiers and address generation, masking, and management.]\n\n## Skill Version(s):\n\n1.7.7 (source: skill frontmatter and server release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.6: 3 files, 5575 bytes\n\nFiles: skill-card.md (2162b), SKILL.md (8937b), _meta.json (143b)\n\nFile v1.7.6:SKILL.md\n\n---\r\nname: qa-test-data-engineering\r\nslug: qa-test-data-engineering\r\ndisplayName: 测试数据工程\r\nversion: 1.7.5\r\ndescription: >-\r\n  当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。\r\n  本技能属于 QA Test Skills 技能集（49 个技能之一），完整工作流体验需安装全套：npx skills add Kokxi/qa-test-skills\r\n\r\nwhen_to_use: 用户说\"造数\"、\"批量造数\"、\"数据构造\"、\"测试数据脱敏\"、\"测试数据合规\"、\"数据工厂\"、\"造1000条\"、\"造大量数据\"、需要管理测试数据、环境数据不足需要批量构造时\r\nallowed-tools: Read Grep Glob Bash\r\nrelated_skills:\r\n  upstream:\r\n    - qa-test-env-data           # 输入：环境和数据管理策略\r\n    - qa-req-deconstruction      # 输入：需求分析确定数据需求\r\n  downstream:\r\n    - qa-execution-observation   # 输出：测试数据支持执行\r\n    - qa-api-testing             # 输出：数据构造用于接口测试\r\ninput_format:\r\n  required:\r\n    - name: 测试策略\r\n      type: object\r\n      description: 来自qa-test-strategy-design的测试策略\r\n    - name: 数据需求\r\n      type: string\r\n      description: 测试数据的类型和规模需求\r\n  optional:\r\n    - name: 数据源信息\r\n      type: string\r\n      description: 可用数据源描述\r\noutput_format:\r\n  traceability:\r\n    - 每套造数方案带唯一ID（DATA-XXXX）\r\n  structure:\r\n    - 测试用例表格：固定 9 列（用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\r\n    - 用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\r\n    - 覆盖率：标注口径（基于现有需求/输入文档），禁止\"全覆盖/100%\"绝对化表述；缺失模块标注\"未覆盖+原因\"\r\n    - data_strategy: 测试数据策略\r\n    - data_generation: 数据生成方案\r\n    - data_mask_rules: 数据脱敏规则\r\n    - data_management: 数据管理流程\r\ncategories: ['Development','Testing','DevOps']\r\ndepth_requirement_quantification:\r\n  reference_value: \"根据数据需求调整造数深度：简单×1/中等×2/复杂×3\"\r\n  minimum: \"至少覆盖数据构造、脱敏、合规3个维度\"\r\nerror_recovery_guidance:\r\n  on_failure: \"造数方案遗漏合规要求时回退到需求解构补充\"\r\n  retry_behavior: \"补充合规要求后重新设计造数方案\"\r\n---\r\n> ⚠️ 本技能单独使用效果有限，建议配合完整技能集（12 步工作流）使用。安装：npx skills add Kokxi/qa-test-skills\r\n\r\n# 测试数据工程\r\n\r\n## 核心原则\r\n\r\n测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\r\n\r\n## 数据构造方法\r\n\r\n### 手动构造\r\n\r\n```text\r\n适用场景：\r\n├─ 少量数据\r\n├─ 复杂业务数据\r\n├─ 一次性数据\r\n└─ 调试用途\r\n\r\n方法：\r\n├─ 数据库直接插入\r\n├─ 管理后台创建\r\n├─ 接口调用创建\r\n└─ 脚本批量创建\r\n```\r\n\r\n### 数据工厂\r\n\r\n```text\r\n适用场景：\r\n├─ 批量数据\r\n├─ 标准化数据\r\n├─ 重复性数据\r\n└─ 自动化测试\r\n\r\n工具：\r\n├─ Faker（Python/JS）\r\n├─ Mockaroo（在线）\r\n├─ Factory Bot（Ruby）\r\n└─ 自建工厂类\r\n```\r\n\r\n### 数据库脚本\r\n\r\n```sql\r\n-- 示例：用户数据构造\r\nINSERT INTO users (username, email, phone, status, created_at)\r\nVALUES \r\n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\r\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\r\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\r\n```\r\n\r\n### API构造\r\n\r\n```python\r\n# 示例：通过API构造订单数据\r\ndef create_test_order(user_id, product_id, quantity=1):\r\n    response = requests.post(\r\n        f\"{BASE_URL}/orders\",\r\n        json={\r\n            \"user_id\": user_id,\r\n            \"product_id\": product_id,\r\n            \"quantity\": quantity\r\n        },\r\n        headers={\"Authorization\": f\"Bearer {token}\"}\r\n    )\r\n    return response.json()[\"order_id\"]\r\n```\r\n\r\n## 数据脱敏\r\n\r\n> 📌 本节与 qa-test-env-data「数据脱敏」内容同步，修改时请同步更新两处。qa-test-env-data 为简化版，完整版见此处。\r\n\r\n### 脱敏规则\r\n\r\n```text\r\n个人信息：\r\n├─ 手机号：138****1234\r\n├─ 身份证：110***********1234\r\n├─ 邮箱：test****@example.com\r\n├─ 姓名：*三\r\n├─ 地址：北京市***\r\n└─ 银行卡：6222****1234\r\n\r\n业务数据：\r\n├─ 金额：保留整数位，小数随机\r\n├─ 订单号：保留格式，数字随机\r\n├─ 时间：保留格式，时间随机\r\n└─ 关联ID：保持关联关系\r\n```\r\n\r\n### 脱敏方法\r\n\r\n```text\r\n├─ 替换法：用*替换部分字符\r\n│   └─ 示例：138****1234\r\n│\r\n├─ 加密法：用加密算法处理\r\n│   └─ 示例：AES加密后存储\r\n│\r\n├─ 截断法：只保留部分字符\r\n│   └─ 示例：北京市***\r\n│\r\n├─ 随机法：用随机值替换\r\n│   └─ 示例：姓名随机生成\r\n│\r\n└─ 哈希法：用哈希值替换\r\n    └─ 示例：SHA256哈希\r\n```\r\n\r\n### 脱敏实现\r\n\r\n```python\r\n# 示例：Python脱敏函数\r\nimport hashlib\r\nimport random\r\n\r\ndef mask_phone(phone):\r\n    \"\"\"手机号脱敏：138****1234\"\"\"\r\n    return phone[:3] + \"****\" + phone[-4:]\r\n\r\ndef mask_id_card(id_card):\r\n    \"\"\"身份证脱敏：110***********1234\"\"\"\r\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\r\n\r\ndef mask_name(name):\r\n    \"\"\"姓名脱敏：*三\"\"\"\r\n    return \"*\" + name[-1]\r\n\r\ndef mask_email(email):\r\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\r\n    local, domain = email.split(\"@\")\r\n    return local[:4] + \"****@\" + domain\r\n```\r\n\r\n## 数据清理\r\n\r\n> 📌 本节与 qa-test-env-data「数据清理」内容同步，修改时请同步更新两处。\r\n\r\n### 清理策略\r\n\r\n```text\r\n├─ 按用例清理\r\n│   ├─ 每个用例执行后清理\r\n│   ├─ 优点：数据隔离好\r\n│   └─ 缺点：效率低\r\n│\r\n├─ 按模块清理\r\n│   ├─ 每个模块测试后清理\r\n│   ├─ 优点：效率较高\r\n│   └─ 缺点：隔离性一般\r\n│\r\n├─ 按批次清理\r\n│   ├─ 每个批次测试后清理\r\n│   ├─ 优点：效率高\r\n│   └─ 缺点：隔离性差\r\n│\r\n└─ 定期清理\r\n    ├─ 定期清理历史数据\r\n    ├─ 优点：保持数据量可控\r\n    └─ 缺点：可能影响测试\r\n```\r\n\r\n### 清理实现\r\n\r\n> ⚠️ **安全警告**：以下 SQL 清理示例**仅适用于隔离的测试环境**，切勿在生产数据库执行。\r\n> 执行前必须确认：\r\n> 1. 目标数据库已确认为测试环境\r\n> 2. 先用 `SELECT COUNT(*)` 预览受影响行数\r\n> 3. 使用事务包裹（`BEGIN; DELETE ...; ROLLBACK;`）做无害验证\r\n> 4. 数据表有 `is_test` 等明确测试标记字段\r\n> 5. 如无把握，先向 DBA 确认清理范围\r\n\r\n```sql\r\n-- 示例：清理测试数据\r\n-- 方法1：按时间清理\r\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\r\n\r\n-- 方法2：按标记清理\r\nDELETE FROM orders WHERE is_test = 1;\r\n\r\n-- 方法3：按用户清理\r\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);\r\n```\r\n\r\n## 数据管理规范\r\n\r\n### 命名规范\r\n\r\n```text\r\n测试用户：\r\n├─ 格式：test_[角色]_[序号]\r\n├─ 示例：test_user_001, test_admin_001\r\n└─ 标记：is_test = 1\r\n\r\n测试数据：\r\n├─ 格式：[类型]_test_[序号]\r\n├─ 示例：order_test_001, product_test_001\r\n└─ 标记：is_test = 1\r\n```\r\n\r\n### 数据生命周期\r\n\r\n```text\r\n├─ 构造：测试前准备数据\r\n├─ 使用：测试中使用数据\r\n├─ 验证：测试后验证数据\r\n├─ 清理：测试后清理数据\r\n└─ 归档：历史数据归档\r\n```\r\n\r\n## 输出示例\r\n\r\n**构造100条用户注册测试数据**\r\n→ 手动构造：录入10条核心数据（正常用户/边界值）\r\n→ 数据工厂：编写SQL脚本批量生成80条\r\n→ API构造：调用注册接口自动化生成剩余\r\n\r\n**生产数据脱敏用于测试**\r\n→ 脱敏规则：手机号（中间4位***）、身份证（生日****）、姓名（张三）\r\n→ 脱敏实现：Docker部署Greenplum，配置脱敏策略执行\r\n\r\n## 检查清单\r\n\r\n测试数据管理完成后检查：\r\n- [ ] 数据构造方法是否设计？\r\n- [ ] 脱敏规则是否定义？\r\n- [ ] 清理机制是否实现？\r\n- [ ] 命名规范是否统一？\r\n- [ ] 数据生命周期是否管理？\r\n- [ ] 数据可追溯性是否保证？\n\nFile v1.7.6:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.7.6\",\n  \"publishedAt\": 1788266906160\n}\n\nFile v1.7.6:skill-card.md\n\n## Description:\n\nThis skill helps QA teams design bulk test-data generation, data masking, cleanup, lifecycle management, and compliance-aware test data workflows.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nQA engineers, test automation developers, and engineering teams use this skill to plan repeatable test data construction, masking, cleanup, and management for test environments. It is intended for workflows that need bulk data setup, production-data desensitization guidance, and traceable data-generation strategies.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill recommends an unpinned external `npx` install for the broader QA skill collection.\n\nMitigation: Review the third-party collection before installation and avoid running the unpinned install command in sensitive environments.\n\nRisk: The cleanup examples include SQL DELETE statements that could remove real order data if used against the wrong database.\n\nMitigation: Run cleanup only in isolated test databases with clearly marked test data, backups, transaction review, and a row-count preview before deletion.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-test-data-engineering)\n- [ClawHub publisher profile](https://clawhub.ai/user/kokxi)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, markdown, code, shell commands, configuration]\n\n**Output Format:** [Markdown with structured guidance and inline code examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May include test data strategies, generation plans, masking rules, cleanup procedures, SQL examples, Python snippets, and QA checklist items.]\n\n## Skill Version(s):\n\n1.7.6 (source: server release metadata; artifact frontmatter lists 1.7.5)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.5: 3 files, 5333 bytes\n\nFiles: skill-card.md (1997b), SKILL.md (8367b), _meta.json (143b)\n\nFile v1.7.5:SKILL.md\n\n---\nname: qa-test-data-engineering\nslug: qa-test-data-engineering\ndisplayName: Test Data Engineering\nversion: 1.7.5\ndescription: >-\n  当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。\n\nwhen_to_use: 用户说\"造数\"、\"批量造数\"、\"数据构造\"、\"测试数据脱敏\"、\"测试数据合规\"、\"数据工厂\"、\"造1000条\"、\"造大量数据\"、需要管理测试数据、环境数据不足需要批量构造时\nallowed-tools: Read Grep Glob Bash\nrelated_skills:\n  upstream:\n    - qa-test-env-data           # 输入：环境和数据管理策略\n    - qa-req-deconstruction      # 输入：需求分析确定数据需求\n  downstream:\n    - qa-execution-observation   # 输出：测试数据支持执行\n    - qa-api-testing             # 输出：数据构造用于接口测试\ninput_format:\n  required:\n    - name: 测试策略\n      type: object\n      description: 来自qa-test-strategy-design的测试策略\n    - name: 数据需求\n      type: string\n      description: 测试数据的类型和规模需求\n  optional:\n    - name: 数据源信息\n      type: string\n      description: 可用数据源描述\noutput_format:\n  traceability:\n    - 每套造数方案带唯一ID（DATA-XXXX）\n  structure:\n    - 测试用例表格：固定 9 列（用例编号|测试类型|功能模块|测试标题|用例级别|预置条件|测试步骤|预期结果|风险等级）\n    - 用例级别：P0≤20%（核心流程）/ P1≤40%（主要功能）/ P2≤30%（次要功能）/ P3≤10%（边缘场景）\n    - 覆盖率：标注口径（基于现有需求/输入文档），禁止\"全覆盖/100%\"绝对化表述；缺失模块标注\"未覆盖+原因\"\n    - data_strategy: 测试数据策略\n    - data_generation: 数据生成方案\n    - data_mask_rules: 数据脱敏规则\n    - data_management: 数据管理流程\ncategories: ['Development','Testing','DevOps']\ndepth_requirement_quantification:\n  reference_value: \"根据数据需求调整造数深度：简单×1/中等×2/复杂×3\"\n  minimum: \"至少覆盖数据构造、脱敏、合规3个维度\"\nerror_recovery_guidance:\n  on_failure: \"造数方案遗漏合规要求时回退到需求解构补充\"\n  retry_behavior: \"补充合规要求后重新设计造数方案\"\n---\n# 测试数据工程\n\n## 核心原则\n\n测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\n\n## 数据构造方法\n\n### 手动构造\n\n```text\n适用场景：\n├─ 少量数据\n├─ 复杂业务数据\n├─ 一次性数据\n└─ 调试用途\n\n方法：\n├─ 数据库直接插入\n├─ 管理后台创建\n├─ 接口调用创建\n└─ 脚本批量创建\n```\n\n### 数据工厂\n\n```text\n适用场景：\n├─ 批量数据\n├─ 标准化数据\n├─ 重复性数据\n└─ 自动化测试\n\n工具：\n├─ Faker（Python/JS）\n├─ Mockaroo（在线）\n├─ Factory Bot（Ruby）\n└─ 自建工厂类\n```\n\n### 数据库脚本\n\n```sql\n-- 示例：用户数据构造\nINSERT INTO users (username, email, phone, status, created_at)\nVALUES \n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\n```\n\n### API构造\n\n```python\n# 示例：通过API构造订单数据\ndef create_test_order(user_id, product_id, quantity=1):\n    response = requests.post(\n        f\"{BASE_URL}/orders\",\n        json={\n            \"user_id\": user_id,\n            \"product_id\": product_id,\n            \"quantity\": quantity\n        },\n        headers={\"Authorization\": f\"Bearer {token}\"}\n    )\n    return response.json()[\"order_id\"]\n```\n\n## 数据脱敏\n\n> 📌 本节与 qa-test-env-data「数据脱敏」内容同步，修改时请同步更新两处。qa-test-env-data 为简化版，完整版见此处。\n\n### 脱敏规则\n\n```text\n个人信息：\n├─ 手机号：138****1234\n├─ 身份证：110***********1234\n├─ 邮箱：test****@example.com\n├─ 姓名：*三\n├─ 地址：北京市***\n└─ 银行卡：6222****1234\n\n业务数据：\n├─ 金额：保留整数位，小数随机\n├─ 订单号：保留格式，数字随机\n├─ 时间：保留格式，时间随机\n└─ 关联ID：保持关联关系\n```\n\n### 脱敏方法\n\n```text\n├─ 替换法：用*替换部分字符\n│   └─ 示例：138****1234\n│\n├─ 加密法：用加密算法处理\n│   └─ 示例：AES加密后存储\n│\n├─ 截断法：只保留部分字符\n│   └─ 示例：北京市***\n│\n├─ 随机法：用随机值替换\n│   └─ 示例：姓名随机生成\n│\n└─ 哈希法：用哈希值替换\n    └─ 示例：SHA256哈希\n```\n\n### 脱敏实现\n\n```python\n# 示例：Python脱敏函数\nimport hashlib\nimport random\n\ndef mask_phone(phone):\n    \"\"\"手机号脱敏：138****1234\"\"\"\n    return phone[:3] + \"****\" + phone[-4:]\n\ndef mask_id_card(id_card):\n    \"\"\"身份证脱敏：110***********1234\"\"\"\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\n\ndef mask_name(name):\n    \"\"\"姓名脱敏：*三\"\"\"\n    return \"*\" + name[-1]\n\ndef mask_email(email):\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\n    local, domain = email.split(\"@\")\n    return local[:4] + \"****@\" + domain\n```\n\n## 数据清理\n\n> 📌 本节与 qa-test-env-data「数据清理」内容同步，修改时请同步更新两处。\n\n### 清理策略\n\n```text\n├─ 按用例清理\n│   ├─ 每个用例执行后清理\n│   ├─ 优点：数据隔离好\n│   └─ 缺点：效率低\n│\n├─ 按模块清理\n│   ├─ 每个模块测试后清理\n│   ├─ 优点：效率较高\n│   └─ 缺点：隔离性一般\n│\n├─ 按批次清理\n│   ├─ 每个批次测试后清理\n│   ├─ 优点：效率高\n│   └─ 缺点：隔离性差\n│\n└─ 定期清理\n    ├─ 定期清理历史数据\n    ├─ 优点：保持数据量可控\n    └─ 缺点：可能影响测试\n```\n\n### 清理实现\n\n> ⚠️ **安全警告**：以下 SQL 清理示例**仅适用于隔离的测试环境**，切勿在生产数据库执行。\n> 执行前必须确认：\n> 1. 目标数据库已确认为测试环境\n> 2. 先用 `SELECT COUNT(*)` 预览受影响行数\n> 3. 使用事务包裹（`BEGIN; DELETE ...; ROLLBACK;`）做无害验证\n> 4. 数据表有 `is_test` 等明确测试标记字段\n> 5. 如无把握，先向 DBA 确认清理范围\n\n```sql\n-- 示例：清理测试数据\n-- 方法1：按时间清理\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\n\n-- 方法2：按标记清理\nDELETE FROM orders WHERE is_test = 1;\n\n-- 方法3：按用户清理\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);\n```\n\n## 数据管理规范\n\n### 命名规范\n\n```text\n测试用户：\n├─ 格式：test_[角色]_[序号]\n├─ 示例：test_user_001, test_admin_001\n└─ 标记：is_test = 1\n\n测试数据：\n├─ 格式：[类型]_test_[序号]\n├─ 示例：order_test_001, product_test_001\n└─ 标记：is_test = 1\n```\n\n### 数据生命周期\n\n```text\n├─ 构造：测试前准备数据\n├─ 使用：测试中使用数据\n├─ 验证：测试后验证数据\n├─ 清理：测试后清理数据\n└─ 归档：历史数据归档\n```\n\n## 输出示例\n\n**构造100条用户注册测试数据**\n→ 手动构造：录入10条核心数据（正常用户/边界值）\n→ 数据工厂：编写SQL脚本批量生成80条\n→ API构造：调用注册接口自动化生成剩余\n\n**生产数据脱敏用于测试**\n→ 脱敏规则：手机号（中间4位***）、身份证（生日****）、姓名（张三）\n→ 脱敏实现：Docker部署Greenplum，配置脱敏策略执行\n\n## 检查清单\n\n测试数据管理完成后检查：\n- [ ] 数据构造方法是否设计？\n- [ ] 脱敏规则是否定义？\n- [ ] 清理机制是否实现？\n- [ ] 命名规范是否统一？\n- [ ] 数据生命周期是否管理？\n- [ ] 数据可追溯性是否保证？\n\nFile v1.7.5:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.7.5\",\n  \"publishedAt\": 1788103264651\n}\n\nFile v1.7.5:skill-card.md\n\n## Description:\n\nHelps testing and engineering teams design bulk test data creation, masking, compliance, lifecycle management, and cleanup strategies for QA environments.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nQA engineers, test automation developers, and data engineering teams use this skill to plan repeatable test data generation, masking rules, cleanup workflows, and data lifecycle practices. It is intended for non-production test data workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Generated SQL or cleanup examples could affect the wrong database or remove unintended rows.\n\nMitigation: Confirm the target is a test environment, preview affected rows, use transactions for validation, and require explicit test markers such as is_test before execution.\n\nRisk: Using production data for testing can expose sensitive personal or business information if masking is incomplete.\n\nMitigation: Identify sensitive fields, apply masking or replacement rules before test use, and review compliance requirements for the relevant environment.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-test-data-engineering)\n\n## Skill Output:\n\n**Output Type(s):** [Markdown, Code, Shell commands, Configuration]\n\n**Output Format:** [Markdown with tables and inline SQL, Python, and command examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs should include traceable data strategy identifiers and avoid absolute coverage claims.]\n\n## Skill Version(s):\n\n1.7.5 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.7.0: 3 files, 5215 bytes\n\nFiles: skill-card.md (2253b), SKILL.md (7926b), _meta.json (143b)\n\nFile v1.7.0:SKILL.md\n\n---\nname: qa-test-data-engineering\nslug: qa-test-data-engineering\ndisplayName: Test Data Engineering\nversion: 1.7.0\ndescription: >-\n  当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。\n\nwhen_to_use: 用户说\"造数\"、\"批量造数\"、\"数据构造\"、\"测试数据脱敏\"、\"测试数据合规\"、\"数据工厂\"、\"造1000条\"、\"造大量数据\"、需要管理测试数据、环境数据不足需要批量构造时\nallowed-tools: Read Grep Glob Bash\nrelated_skills:\n  upstream:\n    - qa-test-env-data           # 输入：环境和数据管理策略\n    - qa-req-deconstruction      # 输入：需求分析确定数据需求\n  downstream:\n    - qa-execution-observation   # 输出：测试数据支持执行\n    - qa-api-testing             # 输出：数据构造用于接口测试\ninput_format:\n  required:\n    - name: 测试策略\n      type: object\n      description: 来自qa-test-strategy-design的测试策略\n    - name: 数据需求\n      type: string\n      description: 测试数据的类型和规模需求\n  optional:\n    - name: 数据源信息\n      type: string\n      description: 可用数据源描述\noutput_format:\n  traceability:\n    - 每套造数方案带唯一ID（DATA-XXXX）\n  structure:\n    - data_strategy: 测试数据策略\n    - data_generation: 数据生成方案\n    - data_mask_rules: 数据脱敏规则\n    - data_management: 数据管理流程\ncategories: ['Development','Testing','DevOps']\ndepth_requirement_quantification:\n  reference_value: \"根据数据需求调整造数深度：简单×1/中等×2/复杂×3\"\n  minimum: \"至少覆盖数据构造、脱敏、合规3个维度\"\nerror_recovery_guidance:\n  on_failure: \"造数方案遗漏合规要求时回退到需求解构补充\"\n  retry_behavior: \"补充合规要求后重新设计造数方案\"\n---\n# 测试数据工程\n\n## 核心原则\n\n测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\n\n## 数据构造方法\n\n### 手动构造\n\n```text\n适用场景：\n├─ 少量数据\n├─ 复杂业务数据\n├─ 一次性数据\n└─ 调试用途\n\n方法：\n├─ 数据库直接插入\n├─ 管理后台创建\n├─ 接口调用创建\n└─ 脚本批量创建\n```\n\n### 数据工厂\n\n```text\n适用场景：\n├─ 批量数据\n├─ 标准化数据\n├─ 重复性数据\n└─ 自动化测试\n\n工具：\n├─ Faker（Python/JS）\n├─ Mockaroo（在线）\n├─ Factory Bot（Ruby）\n└─ 自建工厂类\n```\n\n### 数据库脚本\n\n```sql\n-- 示例：用户数据构造\nINSERT INTO users (username, email, phone, status, created_at)\nVALUES \n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\n```\n\n### API构造\n\n```python\n# 示例：通过API构造订单数据\ndef create_test_order(user_id, product_id, quantity=1):\n    response = requests.post(\n        f\"{BASE_URL}/orders\",\n        json={\n            \"user_id\": user_id,\n            \"product_id\": product_id,\n            \"quantity\": quantity\n        },\n        headers={\"Authorization\": f\"Bearer {token}\"}\n    )\n    return response.json()[\"order_id\"]\n```\n\n## 数据脱敏\n\n> 📌 本节与 qa-test-env-data「数据脱敏」内容同步，修改时请同步更新两处。qa-test-env-data 为简化版，完整版见此处。\n\n### 脱敏规则\n\n```text\n个人信息：\n├─ 手机号：138****1234\n├─ 身份证：110***********1234\n├─ 邮箱：test****@example.com\n├─ 姓名：*三\n├─ 地址：北京市***\n└─ 银行卡：6222****1234\n\n业务数据：\n├─ 金额：保留整数位，小数随机\n├─ 订单号：保留格式，数字随机\n├─ 时间：保留格式，时间随机\n└─ 关联ID：保持关联关系\n```\n\n### 脱敏方法\n\n```text\n├─ 替换法：用*替换部分字符\n│   └─ 示例：138****1234\n│\n├─ 加密法：用加密算法处理\n│   └─ 示例：AES加密后存储\n│\n├─ 截断法：只保留部分字符\n│   └─ 示例：北京市***\n│\n├─ 随机法：用随机值替换\n│   └─ 示例：姓名随机生成\n│\n└─ 哈希法：用哈希值替换\n    └─ 示例：SHA256哈希\n```\n\n### 脱敏实现\n\n```python\n# 示例：Python脱敏函数\nimport hashlib\nimport random\n\ndef mask_phone(phone):\n    \"\"\"手机号脱敏：138****1234\"\"\"\n    return phone[:3] + \"****\" + phone[-4:]\n\ndef mask_id_card(id_card):\n    \"\"\"身份证脱敏：110***********1234\"\"\"\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\n\ndef mask_name(name):\n    \"\"\"姓名脱敏：*三\"\"\"\n    return \"*\" + name[-1]\n\ndef mask_email(email):\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\n    local, domain = email.split(\"@\")\n    return local[:4] + \"****@\" + domain\n```\n\n## 数据清理\n\n> 📌 本节与 qa-test-env-data「数据清理」内容同步，修改时请同步更新两处。\n\n### 清理策略\n\n```text\n├─ 按用例清理\n│   ├─ 每个用例执行后清理\n│   ├─ 优点：数据隔离好\n│   └─ 缺点：效率低\n│\n├─ 按模块清理\n│   ├─ 每个模块测试后清理\n│   ├─ 优点：效率较高\n│   └─ 缺点：隔离性一般\n│\n├─ 按批次清理\n│   ├─ 每个批次测试后清理\n│   ├─ 优点：效率高\n│   └─ 缺点：隔离性差\n│\n└─ 定期清理\n    ├─ 定期清理历史数据\n    ├─ 优点：保持数据量可控\n    └─ 缺点：可能影响测试\n```\n\n### 清理实现\n\n> ⚠️ **安全警告**：以下 SQL 清理示例**仅适用于隔离的测试环境**，切勿在生产数据库执行。\n> 执行前必须确认：\n> 1. 目标数据库已确认为测试环境\n> 2. 先用 `SELECT COUNT(*)` 预览受影响行数\n> 3. 使用事务包裹（`BEGIN; DELETE ...; ROLLBACK;`）做无害验证\n> 4. 数据表有 `is_test` 等明确测试标记字段\n> 5. 如无把握，先向 DBA 确认清理范围\n\n```sql\n-- 示例：清理测试数据\n-- 方法1：按时间清理\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\n\n-- 方法2：按标记清理\nDELETE FROM orders WHERE is_test = 1;\n\n-- 方法3：按用户清理\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);\n```\n\n## 数据管理规范\n\n### 命名规范\n\n```text\n测试用户：\n├─ 格式：test_[角色]_[序号]\n├─ 示例：test_user_001, test_admin_001\n└─ 标记：is_test = 1\n\n测试数据：\n├─ 格式：[类型]_test_[序号]\n├─ 示例：order_test_001, product_test_001\n└─ 标记：is_test = 1\n```\n\n### 数据生命周期\n\n```text\n├─ 构造：测试前准备数据\n├─ 使用：测试中使用数据\n├─ 验证：测试后验证数据\n├─ 清理：测试后清理数据\n└─ 归档：历史数据归档\n```\n\n## 输出示例\n\n**构造100条用户注册测试数据**\n→ 手动构造：录入10条核心数据（正常用户/边界值）\n→ 数据工厂：编写SQL脚本批量生成80条\n→ API构造：调用注册接口自动化生成剩余\n\n**生产数据脱敏用于测试**\n→ 脱敏规则：手机号（中间4位***）、身份证（生日****）、姓名（张三）\n→ 脱敏实现：Docker部署Greenplum，配置脱敏策略执行\n\n## 检查清单\n\n测试数据管理完成后检查：\n- [ ] 数据构造方法是否设计？\n- [ ] 脱敏规则是否定义？\n- [ ] 清理机制是否实现？\n- [ ] 命名规范是否统一？\n- [ ] 数据生命周期是否管理？\n- [ ] 数据可追溯性是否保证？\n\nFile v1.7.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.7.0\",\n  \"publishedAt\": 1786890805153\n}\n\nFile v1.7.0:skill-card.md\n\n## Description:\n\nHelps agents design repeatable test-data generation, masking, cleanup, and management workflows for QA and automated testing.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nQA engineers, test automation developers, and data-focused testers use this skill to plan bulk test-data creation, safe masking of sensitive production-like data, cleanup routines, and traceable data-management practices.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Generated data or cleanup guidance could be applied to an unauthorized or production environment.\n\nMitigation: Require explicit authorization, confirm a non-production target, and verify backups or rollback before running inserts, deletes, API calls, or masking pipelines.\n\nRisk: Use of production-derived data for testing could expose sensitive information if masking controls are incomplete.\n\nMitigation: Prefer synthetic data where possible, identify sensitive fields before use, and validate masking rules against approved privacy controls.\n\nRisk: Database cleanup examples could delete unintended rows if executed without scope checks.\n\nMitigation: Preview affected row counts, use transactions for harmless validation, require clear test-data markers such as is_test, and consult a DBA when scope is uncertain.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-test-data-engineering)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, markdown, code, shell commands, configuration]\n\n**Output Format:** [Markdown guidance with structured sections and inline SQL or code examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Expected outputs include traceable data strategies, generation approaches, masking rules, and management workflows.]\n\n## Skill Version(s):\n\n1.7.0 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.6.3: 3 files, 4994 bytes\n\nFiles: skill-card.md (1717b), SKILL.md (7926b), _meta.json (143b)\n\nFile v1.6.3:SKILL.md\n\n---\nname: qa-test-data-engineering\nslug: qa-test-data-engineering\ndisplayName: Test Data Engineering\nversion: 1.6.3\ndescription: >-\n  当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。\n\nwhen_to_use: 用户说\"造数\"、\"批量造数\"、\"数据构造\"、\"测试数据脱敏\"、\"测试数据合规\"、\"数据工厂\"、\"造1000条\"、\"造大量数据\"、需要管理测试数据、环境数据不足需要批量构造时\nallowed-tools: Read Grep Glob Bash\nrelated_skills:\n  upstream:\n    - qa-test-env-data           # 输入：环境和数据管理策略\n    - qa-req-deconstruction      # 输入：需求分析确定数据需求\n  downstream:\n    - qa-execution-observation   # 输出：测试数据支持执行\n    - qa-api-testing             # 输出：数据构造用于接口测试\ninput_format:\n  required:\n    - name: 测试策略\n      type: object\n      description: 来自qa-test-strategy-design的测试策略\n    - name: 数据需求\n      type: string\n      description: 测试数据的类型和规模需求\n  optional:\n    - name: 数据源信息\n      type: string\n      description: 可用数据源描述\noutput_format:\n  traceability:\n    - 每套造数方案带唯一ID（DATA-XXXX）\n  structure:\n    - data_strategy: 测试数据策略\n    - data_generation: 数据生成方案\n    - data_mask_rules: 数据脱敏规则\n    - data_management: 数据管理流程\ncategories: ['Development','Testing','DevOps']\ndepth_requirement_quantification:\n  reference_value: \"根据数据需求调整造数深度：简单×1/中等×2/复杂×3\"\n  minimum: \"至少覆盖数据构造、脱敏、合规3个维度\"\nerror_recovery_guidance:\n  on_failure: \"造数方案遗漏合规要求时回退到需求解构补充\"\n  retry_behavior: \"补充合规要求后重新设计造数方案\"\n---\n# 测试数据工程\n\n## 核心原则\n\n测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\n\n## 数据构造方法\n\n### 手动构造\n\n```text\n适用场景：\n├─ 少量数据\n├─ 复杂业务数据\n├─ 一次性数据\n└─ 调试用途\n\n方法：\n├─ 数据库直接插入\n├─ 管理后台创建\n├─ 接口调用创建\n└─ 脚本批量创建\n```\n\n### 数据工厂\n\n```text\n适用场景：\n├─ 批量数据\n├─ 标准化数据\n├─ 重复性数据\n└─ 自动化测试\n\n工具：\n├─ Faker（Python/JS）\n├─ Mockaroo（在线）\n├─ Factory Bot（Ruby）\n└─ 自建工厂类\n```\n\n### 数据库脚本\n\n```sql\n-- 示例：用户数据构造\nINSERT INTO users (username, email, phone, status, created_at)\nVALUES \n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\n```\n\n### API构造\n\n```python\n# 示例：通过API构造订单数据\ndef create_test_order(user_id, product_id, quantity=1):\n    response = requests.post(\n        f\"{BASE_URL}/orders\",\n        json={\n            \"user_id\": user_id,\n            \"product_id\": product_id,\n            \"quantity\": quantity\n        },\n        headers={\"Authorization\": f\"Bearer {token}\"}\n    )\n    return response.json()[\"order_id\"]\n```\n\n## 数据脱敏\n\n> 📌 本节与 qa-test-env-data「数据脱敏」内容同步，修改时请同步更新两处。qa-test-env-data 为简化版，完整版见此处。\n\n### 脱敏规则\n\n```text\n个人信息：\n├─ 手机号：138****1234\n├─ 身份证：110***********1234\n├─ 邮箱：test****@example.com\n├─ 姓名：*三\n├─ 地址：北京市***\n└─ 银行卡：6222****1234\n\n业务数据：\n├─ 金额：保留整数位，小数随机\n├─ 订单号：保留格式，数字随机\n├─ 时间：保留格式，时间随机\n└─ 关联ID：保持关联关系\n```\n\n### 脱敏方法\n\n```text\n├─ 替换法：用*替换部分字符\n│   └─ 示例：138****1234\n│\n├─ 加密法：用加密算法处理\n│   └─ 示例：AES加密后存储\n│\n├─ 截断法：只保留部分字符\n│   └─ 示例：北京市***\n│\n├─ 随机法：用随机值替换\n│   └─ 示例：姓名随机生成\n│\n└─ 哈希法：用哈希值替换\n    └─ 示例：SHA256哈希\n```\n\n### 脱敏实现\n\n```python\n# 示例：Python脱敏函数\nimport hashlib\nimport random\n\ndef mask_phone(phone):\n    \"\"\"手机号脱敏：138****1234\"\"\"\n    return phone[:3] + \"****\" + phone[-4:]\n\ndef mask_id_card(id_card):\n    \"\"\"身份证脱敏：110***********1234\"\"\"\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\n\ndef mask_name(name):\n    \"\"\"姓名脱敏：*三\"\"\"\n    return \"*\" + name[-1]\n\ndef mask_email(email):\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\n    local, domain = email.split(\"@\")\n    return local[:4] + \"****@\" + domain\n```\n\n## 数据清理\n\n> 📌 本节与 qa-test-env-data「数据清理」内容同步，修改时请同步更新两处。\n\n### 清理策略\n\n```text\n├─ 按用例清理\n│   ├─ 每个用例执行后清理\n│   ├─ 优点：数据隔离好\n│   └─ 缺点：效率低\n│\n├─ 按模块清理\n│   ├─ 每个模块测试后清理\n│   ├─ 优点：效率较高\n│   └─ 缺点：隔离性一般\n│\n├─ 按批次清理\n│   ├─ 每个批次测试后清理\n│   ├─ 优点：效率高\n│   └─ 缺点：隔离性差\n│\n└─ 定期清理\n    ├─ 定期清理历史数据\n    ├─ 优点：保持数据量可控\n    └─ 缺点：可能影响测试\n```\n\n### 清理实现\n\n> ⚠️ **安全警告**：以下 SQL 清理示例**仅适用于隔离的测试环境**，切勿在生产数据库执行。\n> 执行前必须确认：\n> 1. 目标数据库已确认为测试环境\n> 2. 先用 `SELECT COUNT(*)` 预览受影响行数\n> 3. 使用事务包裹（`BEGIN; DELETE ...; ROLLBACK;`）做无害验证\n> 4. 数据表有 `is_test` 等明确测试标记字段\n> 5. 如无把握，先向 DBA 确认清理范围\n\n```sql\n-- 示例：清理测试数据\n-- 方法1：按时间清理\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\n\n-- 方法2：按标记清理\nDELETE FROM orders WHERE is_test = 1;\n\n-- 方法3：按用户清理\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);\n```\n\n## 数据管理规范\n\n### 命名规范\n\n```text\n测试用户：\n├─ 格式：test_[角色]_[序号]\n├─ 示例：test_user_001, test_admin_001\n└─ 标记：is_test = 1\n\n测试数据：\n├─ 格式：[类型]_test_[序号]\n├─ 示例：order_test_001, product_test_001\n└─ 标记：is_test = 1\n```\n\n### 数据生命周期\n\n```text\n├─ 构造：测试前准备数据\n├─ 使用：测试中使用数据\n├─ 验证：测试后验证数据\n├─ 清理：测试后清理数据\n└─ 归档：历史数据归档\n```\n\n## 输出示例\n\n**构造100条用户注册测试数据**\n→ 手动构造：录入10条核心数据（正常用户/边界值）\n→ 数据工厂：编写SQL脚本批量生成80条\n→ API构造：调用注册接口自动化生成剩余\n\n**生产数据脱敏用于测试**\n→ 脱敏规则：手机号（中间4位***）、身份证（生日****）、姓名（张三）\n→ 脱敏实现：Docker部署Greenplum，配置脱敏策略执行\n\n## 检查清单\n\n测试数据管理完成后检查：\n- [ ] 数据构造方法是否设计？\n- [ ] 脱敏规则是否定义？\n- [ ] 清理机制是否实现？\n- [ ] 命名规范是否统一？\n- [ ] 数据生命周期是否管理？\n- [ ] 数据可追溯性是否保证？\n\nFile v1.6.3:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.6.3\",\n  \"publishedAt\": 1786548601277\n}\n\nFile v1.6.3:skill-card.md\n\n## Description:\n\nUse this skill to design bulk test data generation, masking, compliance checks, and data-factory workflows for QA scenarios.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers, QA engineers, and test automation teams use this skill to plan repeatable test data creation, masking, cleanup, and lifecycle management for test environments.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Production-derived test data can expose regulated, customer, financial, or employee information if used without adequate safeguards.\n\nMitigation: Use synthetic data by default; use production-derived data only with explicit approval, isolated non-production controls, strict minimization, irreversible masking where possible, access logging, and retention limits.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-test-data-engineering)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, markdown, code, shell commands, configuration]\n\n**Output Format:** [Markdown with structured sections and inline code examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes traceable data strategy, generation approach, masking rules, and data management guidance.]\n\n## Skill Version(s):\n\n1.6.3 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.6.0: 3 files, 5119 bytes\n\nFiles: skill-card.md (2116b), SKILL.md (8133b), _meta.json (143b)\n\nFile v1.6.0:SKILL.md\n\n---\r\nname: qa-test-data-engineering\r\nversion: 1.6.0\r\ndescription: >-\r\n  当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。\r\n\r\nwhen_to_use: 用户说\"造数\"、\"批量造数\"、\"数据构造\"、\"测试数据脱敏\"、\"测试数据合规\"、\"数据工厂\"、\"造1000条\"、\"造大量数据\"、需要管理测试数据、环境数据不足需要批量构造时\r\nallowed-tools: Read Grep Glob Bash\r\nrelated_skills:\r\n  upstream:\r\n    - qa-test-env-data           # 输入：环境和数据管理策略\r\n    - qa-req-deconstruction      # 输入：需求分析确定数据需求\r\n  downstream:\r\n    - qa-execution-observation   # 输出：测试数据支持执行\r\n    - qa-api-testing             # 输出：数据构造用于接口测试\r\ninput_format:\r\n  required:\r\n    - name: 测试策略\r\n      type: object\r\n      description: 来自qa-test-strategy-design的测试策略\r\n    - name: 数据需求\r\n      type: string\r\n      description: 测试数据的类型和规模需求\r\n  optional:\r\n    - name: 数据源信息\r\n      type: string\r\n      description: 可用数据源描述\r\noutput_format:\r\n  traceability:\r\n    - 每套造数方案带唯一ID（DATA-XXXX）\r\n  structure:\r\n    - data_strategy: 测试数据策略\r\n    - data_generation: 数据生成方案\r\n    - data_mask_rules: 数据脱敏规则\r\n    - data_management: 数据管理流程\r\ncategories: ['Development','Testing','DevOps']\r\ndepth_requirement_quantification:\r\n  reference_value: \"根据数据需求调整造数深度：简单×1/中等×2/复杂×3\"\r\n  minimum: \"至少覆盖数据构造、脱敏、合规3个维度\"\r\nerror_recovery_guidance:\r\n  on_failure: \"造数方案遗漏合规要求时回退到需求解构补充\"\r\n  retry_behavior: \"补充合规要求后重新设计造数方案\"\r\n---\r\n# 测试数据工程\r\n\r\n## 核心原则\r\n\r\n测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\r\n\r\n## 数据构造方法\r\n\r\n### 手动构造\r\n\r\n```text\r\n适用场景：\r\n├─ 少量数据\r\n├─ 复杂业务数据\r\n├─ 一次性数据\r\n└─ 调试用途\r\n\r\n方法：\r\n├─ 数据库直接插入\r\n├─ 管理后台创建\r\n├─ 接口调用创建\r\n└─ 脚本批量创建\r\n```\r\n\r\n### 数据工厂\r\n\r\n```text\r\n适用场景：\r\n├─ 批量数据\r\n├─ 标准化数据\r\n├─ 重复性数据\r\n└─ 自动化测试\r\n\r\n工具：\r\n├─ Faker（Python/JS）\r\n├─ Mockaroo（在线）\r\n├─ Factory Bot（Ruby）\r\n└─ 自建工厂类\r\n```\r\n\r\n### 数据库脚本\r\n\r\n```sql\r\n-- 示例：用户数据构造\r\nINSERT INTO users (username, email, phone, status, created_at)\r\nVALUES \r\n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\r\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\r\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\r\n```\r\n\r\n### API构造\r\n\r\n```python\r\n# 示例：通过API构造订单数据\r\ndef create_test_order(user_id, product_id, quantity=1):\r\n    response = requests.post(\r\n        f\"{BASE_URL}/orders\",\r\n        json={\r\n            \"user_id\": user_id,\r\n            \"product_id\": product_id,\r\n            \"quantity\": quantity\r\n        },\r\n        headers={\"Authorization\": f\"Bearer {token}\"}\r\n    )\r\n    return response.json()[\"order_id\"]\r\n```\r\n\r\n## 数据脱敏\r\n\r\n> 📌 本节与 qa-test-env-data「数据脱敏」内容同步，修改时请同步更新两处。qa-test-env-data 为简化版，完整版见此处。\r\n\r\n### 脱敏规则\r\n\r\n```text\r\n个人信息：\r\n├─ 手机号：138****1234\r\n├─ 身份证：110***********1234\r\n├─ 邮箱：test****@example.com\r\n├─ 姓名：*三\r\n├─ 地址：北京市***\r\n└─ 银行卡：6222****1234\r\n\r\n业务数据：\r\n├─ 金额：保留整数位，小数随机\r\n├─ 订单号：保留格式，数字随机\r\n├─ 时间：保留格式，时间随机\r\n└─ 关联ID：保持关联关系\r\n```\r\n\r\n### 脱敏方法\r\n\r\n```text\r\n├─ 替换法：用*替换部分字符\r\n│   └─ 示例：138****1234\r\n│\r\n├─ 加密法：用加密算法处理\r\n│   └─ 示例：AES加密后存储\r\n│\r\n├─ 截断法：只保留部分字符\r\n│   └─ 示例：北京市***\r\n│\r\n├─ 随机法：用随机值替换\r\n│   └─ 示例：姓名随机生成\r\n│\r\n└─ 哈希法：用哈希值替换\r\n    └─ 示例：SHA256哈希\r\n```\r\n\r\n### 脱敏实现\r\n\r\n```python\r\n# 示例：Python脱敏函数\r\nimport hashlib\r\nimport random\r\n\r\ndef mask_phone(phone):\r\n    \"\"\"手机号脱敏：138****1234\"\"\"\r\n    return phone[:3] + \"****\" + phone[-4:]\r\n\r\ndef mask_id_card(id_card):\r\n    \"\"\"身份证脱敏：110***********1234\"\"\"\r\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\r\n\r\ndef mask_name(name):\r\n    \"\"\"姓名脱敏：*三\"\"\"\r\n    return \"*\" + name[-1]\r\n\r\ndef mask_email(email):\r\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\r\n    local, domain = email.split(\"@\")\r\n    return local[:4] + \"****@\" + domain\r\n```\r\n\r\n## 数据清理\r\n\r\n> 📌 本节与 qa-test-env-data「数据清理」内容同步，修改时请同步更新两处。\r\n\r\n### 清理策略\r\n\r\n```text\r\n├─ 按用例清理\r\n│   ├─ 每个用例执行后清理\r\n│   ├─ 优点：数据隔离好\r\n│   └─ 缺点：效率低\r\n│\r\n├─ 按模块清理\r\n│   ├─ 每个模块测试后清理\r\n│   ├─ 优点：效率较高\r\n│   └─ 缺点：隔离性一般\r\n│\r\n├─ 按批次清理\r\n│   ├─ 每个批次测试后清理\r\n│   ├─ 优点：效率高\r\n│   └─ 缺点：隔离性差\r\n│\r\n└─ 定期清理\r\n    ├─ 定期清理历史数据\r\n    ├─ 优点：保持数据量可控\r\n    └─ 缺点：可能影响测试\r\n```\r\n\r\n### 清理实现\r\n\r\n> ⚠️ **安全警告**：以下 SQL 清理示例**仅适用于隔离的测试环境**，切勿在生产数据库执行。\r\n> 执行前必须确认：\r\n> 1. 目标数据库已确认为测试环境\r\n> 2. 先用 `SELECT COUNT(*)` 预览受影响行数\r\n> 3. 使用事务包裹（`BEGIN; DELETE ...; ROLLBACK;`）做无害验证\r\n> 4. 数据表有 `is_test` 等明确测试标记字段\r\n> 5. 如无把握，先向 DBA 确认清理范围\r\n\r\n```sql\r\n-- 示例：清理测试数据\r\n-- 方法1：按时间清理\r\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\r\n\r\n-- 方法2：按标记清理\r\nDELETE FROM orders WHERE is_test = 1;\r\n\r\n-- 方法3：按用户清理\r\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);\r\n```\r\n\r\n## 数据管理规范\r\n\r\n### 命名规范\r\n\r\n```text\r\n测试用户：\r\n├─ 格式：test_[角色]_[序号]\r\n├─ 示例：test_user_001, test_admin_001\r\n└─ 标记：is_test = 1\r\n\r\n测试数据：\r\n├─ 格式：[类型]_test_[序号]\r\n├─ 示例：order_test_001, product_test_001\r\n└─ 标记：is_test = 1\r\n```\r\n\r\n### 数据生命周期\r\n\r\n```text\r\n├─ 构造：测试前准备数据\r\n├─ 使用：测试中使用数据\r\n├─ 验证：测试后验证数据\r\n├─ 清理：测试后清理数据\r\n└─ 归档：历史数据归档\r\n```\r\n\r\n## 输出示例\r\n\r\n**构造100条用户注册测试数据**\r\n→ 手动构造：录入10条核心数据（正常用户/边界值）\r\n→ 数据工厂：编写SQL脚本批量生成80条\r\n→ API构造：调用注册接口自动化生成剩余\r\n\r\n**生产数据脱敏用于测试**\r\n→ 脱敏规则：手机号（中间4位***）、身份证（生日****）、姓名（张三）\r\n→ 脱敏实现：Docker部署Greenplum，配置脱敏策略执行\r\n\r\n## 检查清单\r\n\r\n测试数据管理完成后检查：\r\n- [ ] 数据构造方法是否设计？\r\n- [ ] 脱敏规则是否定义？\r\n- [ ] 清理机制是否实现？\r\n- [ ] 命名规范是否统一？\r\n- [ ] 数据生命周期是否管理？\r\n- [ ] 数据可追溯性是否保证？\n\nFile v1.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.6.0\",\n  \"publishedAt\": 1783359175515\n}\n\nFile v1.6.0:skill-card.md\n\n## Description: <br>\nProvides QA guidance for bulk test data generation, data masking, compliance-aware data handling, and test data factory design. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nQA engineers, test automation developers, and data engineers use this skill to plan repeatable test data construction, masking, cleanup, lifecycle management, and traceability for test environments. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Database cleanup examples could delete real data if applied to production or shared environments. <br>\nMitigation: Use them only in isolated test environments, preview affected rows, wrap changes in transactions, require clear test-data markers, and obtain DBA approval before execution. <br>\nRisk: Production-data masking guidance could be applied without confirming compliance requirements or sensitive-field coverage. <br>\nMitigation: Validate masking rules against the applicable privacy and compliance requirements before using production-derived data in tests. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-test-data-engineering) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, configuration, guidance] <br>\n**Output Format:** [Markdown with structured sections, checklists, and inline SQL/Python examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Outputs include DATA-XXXX traceability identifiers and structured data_strategy, data_generation, data_mask_rules, and data_management sections.] <br>\n\n## Skill Version(s): <br>\n1.6.0 (source: release evidence and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.5.0: 3 files, 4813 bytes\n\nFiles: skill-card.md (1996b), SKILL.md (7831b), _meta.json (143b)\n\nFile v1.5.0:SKILL.md\n\n---\r\nname: qa-test-data-engineering\r\nversion: 1.5.0\r\ndescription: >-\r\n  当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。\r\n\r\nwhen_to_use: 用户说\"造数\"、\"批量造数\"、\"数据构造\"、\"测试数据脱敏\"、\"测试数据合规\"、\"数据工厂\"、\"造1000条\"、\"造大量数据\"、需要管理测试数据、环境数据不足需要批量构造时\r\nallowed-tools: Read Grep Glob Bash\r\nrelated_skills:\r\n  upstream:\r\n    - qa-test-env-data           # 输入：环境和数据管理策略\r\n    - qa-req-deconstruction      # 输入：需求分析确定数据需求\r\n  downstream:\r\n    - qa-execution-observation   # 输出：测试数据支持执行\r\n    - qa-api-testing             # 输出：数据构造用于接口测试\r\ninput_format:\r\n  required:\r\n    - name: 测试策略\r\n      type: object\r\n      description: 来自qa-test-strategy-design的测试策略\r\n    - name: 数据需求\r\n      type: string\r\n      description: 测试数据的类型和规模需求\r\n  optional:\r\n    - name: 数据源信息\r\n      type: string\r\n      description: 可用数据源描述\r\noutput_format:\r\n  structure:\r\n    - data_strategy: 测试数据策略\r\n    - data_generation: 数据生成方案\r\n    - data_mask_rules: 数据脱敏规则\r\n    - data_management: 数据管理流程\r\n---\r\n\r\n# 测试数据工程\r\n\r\n## 核心原则\r\n\r\n你是一位测试数据专家，擅长设计和管理测试数据。\r\n**核心原则**：测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\r\n本技能覆盖数据构造方法、脱敏策略、清理机制和命名规范。\r\n\r\n## 数据构造方法\r\n\r\n### 手动构造\r\n\r\n```text\r\n适用场景：\r\n├─ 少量数据\r\n├─ 复杂业务数据\r\n├─ 一次性数据\r\n└─ 调试用途\r\n\r\n方法：\r\n├─ 数据库直接插入\r\n├─ 管理后台创建\r\n├─ 接口调用创建\r\n└─ 脚本批量创建\r\n```\r\n\r\n### 数据工厂\r\n\r\n```text\r\n适用场景：\r\n├─ 批量数据\r\n├─ 标准化数据\r\n├─ 重复性数据\r\n└─ 自动化测试\r\n\r\n工具：\r\n├─ Faker（Python/JS）\r\n├─ Mockaroo（在线）\r\n├─ Factory Bot（Ruby）\r\n└─ 自建工厂类\r\n```\r\n\r\n### 数据库脚本\r\n\r\n```sql\r\n-- 示例：用户数据构造\r\nINSERT INTO users (username, email, phone, status, created_at)\r\nVALUES \r\n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\r\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\r\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\r\n```\r\n\r\n### API构造\r\n\r\n```python\r\n# 示例：通过API构造订单数据\r\ndef create_test_order(user_id, product_id, quantity=1):\r\n    response = requests.post(\r\n        f\"{BASE_URL}/orders\",\r\n        json={\r\n            \"user_id\": user_id,\r\n            \"product_id\": product_id,\r\n            \"quantity\": quantity\r\n        },\r\n        headers={\"Authorization\": f\"Bearer {token}\"}\r\n    )\r\n    return response.json()[\"order_id\"]\r\n```\r\n\r\n## 数据脱敏\r\n\r\n> 📌 本节与 qa-test-env-data「数据脱敏」内容同步，修改时请同步更新两处。qa-test-env-data 为简化版，完整版见此处。\r\n\r\n### 脱敏规则\r\n\r\n```text\r\n个人信息：\r\n├─ 手机号：138****1234\r\n├─ 身份证：110***********1234\r\n├─ 邮箱：test****@example.com\r\n├─ 姓名：*三\r\n├─ 地址：北京市***\r\n└─ 银行卡：6222****1234\r\n\r\n业务数据：\r\n├─ 金额：保留整数位，小数随机\r\n├─ 订单号：保留格式，数字随机\r\n├─ 时间：保留格式，时间随机\r\n└─ 关联ID：保持关联关系\r\n```\r\n\r\n### 脱敏方法\r\n\r\n```text\r\n├─ 替换法：用*替换部分字符\r\n│   └─ 示例：138****1234\r\n│\r\n├─ 加密法：用加密算法处理\r\n│   └─ 示例：AES加密后存储\r\n│\r\n├─ 截断法：只保留部分字符\r\n│   └─ 示例：北京市***\r\n│\r\n├─ 随机法：用随机值替换\r\n│   └─ 示例：姓名随机生成\r\n│\r\n└─ 哈希法：用哈希值替换\r\n    └─ 示例：SHA256哈希\r\n```\r\n\r\n### 脱敏实现\r\n\r\n```python\r\n# 示例：Python脱敏函数\r\nimport hashlib\r\nimport random\r\n\r\ndef mask_phone(phone):\r\n    \"\"\"手机号脱敏：138****1234\"\"\"\r\n    return phone[:3] + \"****\" + phone[-4:]\r\n\r\ndef mask_id_card(id_card):\r\n    \"\"\"身份证脱敏：110***********1234\"\"\"\r\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\r\n\r\ndef mask_name(name):\r\n    \"\"\"姓名脱敏：*三\"\"\"\r\n    return \"*\" + name[-1]\r\n\r\ndef mask_email(email):\r\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\r\n    local, domain = email.split(\"@\")\r\n    return local[:4] + \"****@\" + domain\r\n```\r\n\r\n## 数据清理\r\n\r\n> 📌 本节与 qa-test-env-data「数据清理」内容同步，修改时请同步更新两处。\r\n\r\n### 清理策略\r\n\r\n```text\r\n├─ 按用例清理\r\n│   ├─ 每个用例执行后清理\r\n│   ├─ 优点：数据隔离好\r\n│   └─ 缺点：效率低\r\n│\r\n├─ 按模块清理\r\n│   ├─ 每个模块测试后清理\r\n│   ├─ 优点：效率较高\r\n│   └─ 缺点：隔离性一般\r\n│\r\n├─ 按批次清理\r\n│   ├─ 每个批次测试后清理\r\n│   ├─ 优点：效率高\r\n│   └─ 缺点：隔离性差\r\n│\r\n└─ 定期清理\r\n    ├─ 定期清理历史数据\r\n    ├─ 优点：保持数据量可控\r\n    └─ 缺点：可能影响测试\r\n```\r\n\r\n### 清理实现\r\n\r\n> ⚠️ **安全警告**：以下 SQL 清理示例**仅适用于隔离的测试环境**，切勿在生产数据库执行。\r\n> 执行前必须确认：\r\n> 1. 目标数据库已确认为测试环境\r\n> 2. 先用 `SELECT COUNT(*)` 预览受影响行数\r\n> 3. 使用事务包裹（`BEGIN; DELETE ...; ROLLBACK;`）做无害验证\r\n> 4. 数据表有 `is_test` 等明确测试标记字段\r\n> 5. 如无把握，先向 DBA 确认清理范围\r\n\r\n```sql\r\n-- 示例：清理测试数据\r\n-- 方法1：按时间清理\r\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\r\n\r\n-- 方法2：按标记清理\r\nDELETE FROM orders WHERE is_test = 1;\r\n\r\n-- 方法3：按用户清理\r\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);\r\n```\r\n\r\n## 数据管理规范\r\n\r\n### 命名规范\r\n\r\n```text\r\n测试用户：\r\n├─ 格式：test_[角色]_[序号]\r\n├─ 示例：test_user_001, test_admin_001\r\n└─ 标记：is_test = 1\r\n\r\n测试数据：\r\n├─ 格式：[类型]_test_[序号]\r\n├─ 示例：order_test_001, product_test_001\r\n└─ 标记：is_test = 1\r\n```\r\n\r\n### 数据生命周期\r\n\r\n```text\r\n├─ 构造：测试前准备数据\r\n├─ 使用：测试中使用数据\r\n├─ 验证：测试后验证数据\r\n├─ 清理：测试后清理数据\r\n└─ 归档：历史数据归档\r\n```\r\n\r\n## 输出示例\r\n\r\n**构造100条用户注册测试数据**\r\n→ 手动构造：录入10条核心数据（正常用户/边界值）\r\n→ 数据工厂：编写SQL脚本批量生成80条\r\n→ API构造：调用注册接口自动化生成剩余\r\n\r\n**生产数据脱敏用于测试**\r\n→ 脱敏规则：手机号（中间4位***）、身份证（生日****）、姓名（张三）\r\n→ 脱敏实现：Docker部署Greenplum，配置脱敏策略执行\r\n\r\n## 检查清单\r\n\r\n测试数据管理完成后检查：\r\n- [ ] 数据构造方法是否设计？\r\n- [ ] 脱敏规则是否定义？\r\n- [ ] 清理机制是否实现？\r\n- [ ] 命名规范是否统一？\r\n- [ ] 数据生命周期是否管理？\r\n- [ ] 数据可追溯性是否保证？\n\nFile v1.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.5.0\",\n  \"publishedAt\": 1782736605984\n}\n\nFile v1.5.0:skill-card.md\n\n## Description: <br>\nHelps QA engineers design and manage bulk test-data generation, data masking, cleanup, naming, lifecycle practices, and compliance-aware data factory workflows. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nQA engineers and test automation teams use this skill to plan repeatable test-data strategies, generate data through APIs, database scripts, or data factories, define masking rules, and manage cleanup for isolated test environments. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Database, API, cleanup, and masking examples could affect production systems or personal data if applied outside an isolated test environment. <br>\nMitigation: Use scoped non-production credentials, tag generated rows as test data, review DELETE statements before execution, and get approval before using real production or personal data. <br>\n\n\n## Reference(s): <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, markdown, code, configuration] <br>\n**Output Format:** [Markdown with structured sections and SQL or Python examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Includes strategy, generation plan, masking rules, and data management workflow guidance. Follow the security guidance to use isolated test environments, scoped non-production credentials, test-data tags, reviewed DELETE statements, and approval before using production or personal data.] <br>\n\n## Skill Version(s): <br>\n1.5.0 (source: SKILL.md frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.4.1: 3 files, 4649 bytes\n\nFiles: skill-card.md (2433b), SKILL.md (6807b), _meta.json (143b)\n\nFile v1.4.1:SKILL.md\n\n---\r\nname: qa-test-data-engineering\r\ndescription: >-\r\n  测试数据工程，专注造数/脱敏/合规/数据工厂建设，支持大规模测试数据构造和管理。当需要批量造数或敏感数据脱敏时激活。\r\n\r\nwhen_to_use: 用户说\"造数\"、\"批量造数\"、\"数据构造\"、\"测试数据脱敏\"、\"测试数据合规\"、\"数据工厂\"、\"造1000条\"、\"造大量数据\"、需要管理测试数据、环境数据不足需要批量构造时\r\nallowed-tools: Read Grep Glob Bash\r\nrelated_skills:\r\n  upstream:\r\n    - qa-test-env-data           # 输入：环境和数据管理策略\r\n    - qa-req-deconstruction      # 输入：需求分析确定数据需求\r\n  downstream:\r\n    - qa-execution-observation   # 输出：测试数据支持执行\r\n    - qa-api-testing             # 输出：数据构造用于接口测试\r\ninput_format: 需求分析 + 环境策略\r\noutput_format: 测试数据方案（数据工厂+脱敏策略+清理机制）\r\n---\r\n\r\n# 测试数据工程\r\n\r\n## Overview\r\n\r\n你是一位测试数据专家，擅长设计和管理测试数据。\r\n**核心原则**：测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\r\n本技能覆盖数据构造方法、脱敏策略、清理机制和命名规范。\r\n\r\n## 数据构造方法\r\n\r\n### 手动构造\r\n\r\n```\r\n适用场景：\r\n├─ 少量数据\r\n├─ 复杂业务数据\r\n├─ 一次性数据\r\n└─ 调试用途\r\n\r\n方法：\r\n├─ 数据库直接插入\r\n├─ 管理后台创建\r\n├─ 接口调用创建\r\n└─ 脚本批量创建\r\n```\r\n\r\n### 数据工厂\r\n\r\n```\r\n适用场景：\r\n├─ 批量数据\r\n├─ 标准化数据\r\n├─ 重复性数据\r\n└─ 自动化测试\r\n\r\n工具：\r\n├─ Faker（Python/JS）\r\n├─ Mockaroo（在线）\r\n├─ Factory Bot（Ruby）\r\n└─ 自建工厂类\r\n```\r\n\r\n### 数据库脚本\r\n\r\n```sql\r\n-- 示例：用户数据构造\r\nINSERT INTO users (username, email, phone, status, created_at)\r\nVALUES \r\n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\r\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\r\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\r\n```\r\n\r\n### API构造\r\n\r\n```python\r\n# 示例：通过API构造订单数据\r\ndef create_test_order(user_id, product_id, quantity=1):\r\n    response = requests.post(\r\n        f\"{BASE_URL}/orders\",\r\n        json={\r\n            \"user_id\": user_id,\r\n            \"product_id\": product_id,\r\n            \"quantity\": quantity\r\n        },\r\n        headers={\"Authorization\": f\"Bearer {token}\"}\r\n    )\r\n    return response.json()[\"order_id\"]\r\n```\r\n\r\n## 数据脱敏\r\n\r\n### 脱敏规则\r\n\r\n```\r\n个人信息：\r\n├─ 手机号：138****1234\r\n├─ 身份证：110***********1234\r\n├─ 邮箱：test****@example.com\r\n├─ 姓名：*三\r\n├─ 地址：北京市***\r\n└─ 银行卡：6222****1234\r\n\r\n业务数据：\r\n├─ 金额：保留整数位，小数随机\r\n├─ 订单号：保留格式，数字随机\r\n├─ 时间：保留格式，时间随机\r\n└─ 关联ID：保持关联关系\r\n```\r\n\r\n### 脱敏方法\r\n\r\n```\r\n├─ 替换法：用*替换部分字符\r\n│   └─ 示例：138****1234\r\n│\r\n├─ 加密法：用加密算法处理\r\n│   └─ 示例：AES加密后存储\r\n│\r\n├─ 截断法：只保留部分字符\r\n│   └─ 示例：北京市***\r\n│\r\n├─ 随机法：用随机值替换\r\n│   └─ 示例：姓名随机生成\r\n│\r\n└─ 哈希法：用哈希值替换\r\n    └─ 示例：SHA256哈希\r\n```\r\n\r\n### 脱敏实现\r\n\r\n```python\r\n# 示例：Python脱敏函数\r\nimport hashlib\r\nimport random\r\n\r\ndef mask_phone(phone):\r\n    \"\"\"手机号脱敏：138****1234\"\"\"\r\n    return phone[:3] + \"****\" + phone[-4:]\r\n\r\ndef mask_id_card(id_card):\r\n    \"\"\"身份证脱敏：110***********1234\"\"\"\r\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\r\n\r\ndef mask_name(name):\r\n    \"\"\"姓名脱敏：*三\"\"\"\r\n    return \"*\" + name[-1]\r\n\r\ndef mask_email(email):\r\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\r\n    local, domain = email.split(\"@\")\r\n    return local[:4] + \"****@\" + domain\r\n```\r\n\r\n## 数据清理\r\n\r\n### 清理策略\r\n\r\n```\r\n├─ 按用例清理\r\n│   ├─ 每个用例执行后清理\r\n│   ├─ 优点：数据隔离好\r\n│   └─ 缺点：效率低\r\n│\r\n├─ 按模块清理\r\n│   ├─ 每个模块测试后清理\r\n│   ├─ 优点：效率较高\r\n│   └─ 缺点：隔离性一般\r\n│\r\n├─ 按批次清理\r\n│   ├─ 每个批次测试后清理\r\n│   ├─ 优点：效率高\r\n│   └─ 缺点：隔离性差\r\n│\r\n└─ 定期清理\r\n    ├─ 定期清理历史数据\r\n    ├─ 优点：保持数据量可控\r\n    └─ 缺点：可能影响测试\r\n```\r\n\r\n### 清理实现\r\n\r\n> ⚠️ **安全警告**：以下 SQL 清理示例**仅适用于隔离的测试环境**，切勿在生产数据库执行。\r\n> 执行前必须确认：\r\n> 1. 目标数据库已确认为测试环境\r\n> 2. 先用 `SELECT COUNT(*)` 预览受影响行数\r\n> 3. 使用事务包裹（`BEGIN; DELETE ...; ROLLBACK;`）做无害验证\r\n> 4. 数据表有 `is_test` 等明确测试标记字段\r\n> 5. 如无把握，先向 DBA 确认清理范围\r\n\r\n```sql\r\n-- 示例：清理测试数据\r\n-- 方法1：按时间清理\r\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\r\n\r\n-- 方法2：按标记清理\r\nDELETE FROM orders WHERE is_test = 1;\r\n\r\n-- 方法3：按用户清理\r\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);\r\n```\r\n\r\n## 数据管理规范\r\n\r\n### 命名规范\r\n\r\n```\r\n测试用户：\r\n├─ 格式：test_[角色]_[序号]\r\n├─ 示例：test_user_001, test_admin_001\r\n└─ 标记：is_test = 1\r\n\r\n测试数据：\r\n├─ 格式：[类型]_test_[序号]\r\n├─ 示例：order_test_001, product_test_001\r\n└─ 标记：is_test = 1\r\n```\r\n\r\n### 数据生命周期\r\n\r\n```\r\n├─ 构造：测试前准备数据\r\n├─ 使用：测试中使用数据\r\n├─ 验证：测试后验证数据\r\n├─ 清理：测试后清理数据\r\n└─ 归档：历史数据归档\r\n```\r\n\r\n## Examples\r\n\r\n**构造100条用户注册测试数据**\r\n→ 手动构造：录入10条核心数据（正常用户/边界值）\r\n→ 数据工厂：编写SQL脚本批量生成80条\r\n→ API构造：调用注册接口自动化生成剩余\r\n\r\n**生产数据脱敏用于测试**\r\n→ 脱敏规则：手机号（中间4位***）、身份证（生日****）、姓名（张三）\r\n→ 脱敏实现：Docker部署Greenplum，配置脱敏策略执行\r\n\r\n## Guidelines\r\n\r\n测试数据管理完成后检查：\r\n- [ ] 数据构造方法是否设计？\r\n- [ ] 脱敏规则是否定义？\r\n- [ ] 清理机制是否实现？\r\n- [ ] 命名规范是否统一？\r\n- [ ] 数据生命周期是否管理？\r\n- [ ] 数据可追溯性是否保证？\n\nFile v1.4.1:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.4.1\",\n  \"publishedAt\": 1782406648772\n}\n\nFile v1.4.1:skill-card.md\n\n## Description: <br>\nProvides test-data engineering guidance for creating, masking, governing, and cleaning up large-scale test datasets. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nQA engineers, developers, and test automation teams use this skill to design test-data factories, generate batch data, define masking rules for sensitive data, and plan cleanup practices for repeatable test execution. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: SQL cleanup examples could delete or alter data if applied to the wrong database. <br>\nMitigation: Use the skill only with confirmed non-production targets, preview affected rows, wrap cleanup in transactions where possible, and require explicit approval before destructive SQL runs. <br>\nRisk: API or script-based data creation may affect shared test systems or create large volumes of records. <br>\nMitigation: Confirm the target environment and volume before execution, use test markers such as is_test fields, and keep generated data traceable for cleanup. <br>\nRisk: Sensitive source data used for testing may remain identifiable if masking rules are incomplete. <br>\nMitigation: Review masking rules for each sensitive field type and validate transformed data before sharing it outside authorized test workflows. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/kokxi/skills/qa-test-data-engineering) <br>\n- [Publisher profile](https://clawhub.ai/user/kokxi) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with SQL and Python examples, checklists, and data-management recommendations] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include test-data construction approaches, masking rules, cleanup strategies, naming conventions, and lifecycle checklists.] <br>\n\n## Skill Version(s): <br>\n1.4.1 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.4.0: 3 files, 4376 bytes\n\nFiles: skill-card.md (2165b), SKILL.md (6815b), _meta.json (143b)\n\nFile v1.4.0:SKILL.md\n\n---\r\nname: qa-test-data-engineering\r\ndescription: >-\r\n   测试数据工程，专注于测试数据的大规模构造、脱敏、合规管理和数据平台建设。当用户需要批量造数、数据脱敏、搭建数据工厂或管理数据合规时自动触发。\r\n   也适用于：测试环境数据不足需要批量构造、敏感数据需要脱敏处理、或需要测试数据平台支撑时。\r\n   注意：本技能聚焦数据工程全流程；测试环境管理请使用qa-test-env-data。\r\n   关键词：测试数据、数据构造、数据脱敏、数据管理、批量造数、敏感数据、数据合规、测试数据平台、数据工厂、数据管道。\nwhen_to_use: 用户说\"造数\"、\"批量造数\"、\"数据构造\"、\"数据脱敏\"、\"敏感数据\"、\"数据合规\"、\"数据工厂\"、\"造1000条\"、\"造大量数据\"、需要管理测试数据、环境数据不足需要批量构造时\r\nallowed-tools: Read Grep Glob Bash\r\nrelated_skills:\r\n  upstream:\r\n    - qa-test-env-data           # 输入：环境和数据管理策略\r\n    - qa-req-deconstruction      # 输入：需求分析确定数据需求\r\n  downstream:\r\n    - qa-execution-observation   # 输出：测试数据支持执行\r\n    - qa-api-testing             # 输出：数据构造用于接口测试\r\ninput_format: 需求分析 + 环境策略\r\noutput_format: 测试数据方案（数据工厂+脱敏策略+清理机制）\r\n---\r\n\r\n# 测试数据工程\r\n\r\n## Overview\r\n\r\n你是一位测试数据专家，擅长设计和管理测试数据。\r\n**核心原则**：测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\r\n本技能覆盖数据构造方法、脱敏策略、清理机制和命名规范。\r\n\r\n## 数据构造方法\r\n\r\n### 手动构造\r\n\r\n```\r\n适用场景：\r\n├─ 少量数据\r\n├─ 复杂业务数据\r\n├─ 一次性数据\r\n└─ 调试用途\r\n\r\n方法：\r\n├─ 数据库直接插入\r\n├─ 管理后台创建\r\n├─ 接口调用创建\r\n└─ 脚本批量创建\r\n```\r\n\r\n### 数据工厂\r\n\r\n```\r\n适用场景：\r\n├─ 批量数据\r\n├─ 标准化数据\r\n├─ 重复性数据\r\n└─ 自动化测试\r\n\r\n工具：\r\n├─ Faker（Python/JS）\r\n├─ Mockaroo（在线）\r\n├─ Factory Bot（Ruby）\r\n└─ 自建工厂类\r\n```\r\n\r\n### 数据库脚本\r\n\r\n```sql\r\n-- 示例：用户数据构造\r\nINSERT INTO users (username, email, phone, status, created_at)\r\nVALUES \r\n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\r\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\r\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\r\n```\r\n\r\n### API构造\r\n\r\n```python\r\n# 示例：通过API构造订单数据\r\ndef create_test_order(user_id, product_id, quantity=1):\r\n    response = requests.post(\r\n        f\"{BASE_URL}/orders\",\r\n        json={\r\n            \"user_id\": user_id,\r\n            \"product_id\": product_id,\r\n            \"quantity\": quantity\r\n        },\r\n        headers={\"Authorization\": f\"Bearer {token}\"}\r\n    )\r\n    return response.json()[\"order_id\"]\r\n```\r\n\r\n## 数据脱敏\r\n\r\n### 脱敏规则\r\n\r\n```\r\n个人信息：\r\n├─ 手机号：138****1234\r\n├─ 身份证：110***********1234\r\n├─ 邮箱：test****@example.com\r\n├─ 姓名：*三\r\n├─ 地址：北京市***\r\n└─ 银行卡：6222****1234\r\n\r\n业务数据：\r\n├─ 金额：保留整数位，小数随机\r\n├─ 订单号：保留格式，数字随机\r\n├─ 时间：保留格式，时间随机\r\n└─ 关联ID：保持关联关系\r\n```\r\n\r\n### 脱敏方法\r\n\r\n```\r\n├─ 替换法：用*替换部分字符\r\n│   └─ 示例：138****1234\r\n│\r\n├─ 加密法：用加密算法处理\r\n│   └─ 示例：AES加密后存储\r\n│\r\n├─ 截断法：只保留部分字符\r\n│   └─ 示例：北京市***\r\n│\r\n├─ 随机法：用随机值替换\r\n│   └─ 示例：姓名随机生成\r\n│\r\n└─ 哈希法：用哈希值替换\r\n    └─ 示例：SHA256哈希\r\n```\r\n\r\n### 脱敏实现\r\n\r\n```python\r\n# 示例：Python脱敏函数\r\nimport hashlib\r\nimport random\r\n\r\ndef mask_phone(phone):\r\n    \"\"\"手机号脱敏：138****1234\"\"\"\r\n    return phone[:3] + \"****\" + phone[-4:]\r\n\r\ndef mask_id_card(id_card):\r\n    \"\"\"身份证脱敏：110***********1234\"\"\"\r\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\r\n\r\ndef mask_name(name):\r\n    \"\"\"姓名脱敏：*三\"\"\"\r\n    return \"*\" + name[-1]\r\n\r\ndef mask_email(email):\r\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\r\n    local, domain = email.split(\"@\")\r\n    return local[:4] + \"****@\" + domain\r\n```\r\n\r\n## 数据清理\r\n\r\n### 清理策略\r\n\r\n```\r\n├─ 按用例清理\r\n│   ├─ 每个用例执行后清理\r\n│   ├─ 优点：数据隔离好\r\n│   └─ 缺点：效率低\r\n│\r\n├─ 按模块清理\r\n│   ├─ 每个模块测试后清理\r\n│   ├─ 优点：效率较高\r\n│   └─ 缺点：隔离性一般\r\n│\r\n├─ 按批次清理\r\n│   ├─ 每个批次测试后清理\r\n│   ├─ 优点：效率高\r\n│   └─ 缺点：隔离性差\r\n│\r\n└─ 定期清理\r\n    ├─ 定期清理历史数据\r\n    ├─ 优点：保持数据量可控\r\n    └─ 缺点：可能影响测试\r\n```\r\n\r\n### 清理实现\r\n\r\n```sql\r\n-- 示例：清理测试数据\r\n-- 方法1：按时间清理\r\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\r\n\r\n-- 方法2：按标记清理\r\nDELETE FROM orders WHERE is_test = 1;\r\n\r\n-- 方法3：按用户清理\r\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);\r\n```\r\n\r\n## 数据管理规范\r\n\r\n### 命名规范\r\n\r\n```\r\n测试用户：\r\n├─ 格式：test_[角色]_[序号]\r\n├─ 示例：test_user_001, test_admin_001\r\n└─ 标记：is_test = 1\r\n\r\n测试数据：\r\n├─ 格式：[类型]_test_[序号]\r\n├─ 示例：order_test_001, product_test_001\r\n└─ 标记：is_test = 1\r\n```\r\n\r\n### 数据生命周期\r\n\r\n```\r\n├─ 构造：测试前准备数据\r\n├─ 使用：测试中使用数据\r\n├─ 验证：测试后验证数据\r\n├─ 清理：测试后清理数据\r\n└─ 归档：历史数据归档\r\n```\r\n\r\n## Examples\r\n\r\n**构造100条用户注册测试数据**\r\n→ 手动构造：录入10条核心数据（正常用户/边界值）\r\n→ 数据工厂：编写SQL脚本批量生成80条\r\n→ API构造：调用注册接口自动化生成剩余\r\n\r\n**生产数据脱敏用于测试**\r\n→ 脱敏规则：手机号（中间4位***）、身份证（生日****）、姓名（张三）\r\n→ 脱敏实现：Docker部署Greenplum，配置脱敏策略执行\r\n\r\n## Guidelines\r\n\r\n测试数据管理完成后检查：\r\n- [ ] 数据构造方法是否设计？\r\n- [ ] 脱敏规则是否定义？\r\n- [ ] 清理机制是否实现？\r\n- [ ] 命名规范是否统一？\r\n- [ ] 数据生命周期是否管理？\r\n- [ ] 数据可追溯性是否保证？\n\nFile v1.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.4.0\",\n  \"publishedAt\": 1782278018964\n}\n\nFile v1.4.0:skill-card.md\n\n## Description: <br>\nQa Test Data Engineering helps QA and data engineers design large-scale test data construction, masking, compliance management, data factory, data pipeline, cleanup, naming, and lifecycle practices for repeatable testing. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[kokxi](https://clawhub.ai/user/kokxi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nQA engineers, data engineers, and test automation developers use this skill to plan and document test data generation, desensitization, data governance, cleanup, naming, and lifecycle controls for test environments. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Database cleanup or mutation guidance could affect real data if used outside an isolated test environment. <br>\nMitigation: Require confirmation that the target is a test environment before using generated SQL, API calls, or cleanup steps. <br>\nRisk: Delete or update statements could remove more rows than intended. <br>\nMitigation: Verify affected rows with SELECT or dry-run output first, then run changes in a transaction or after a backup. <br>\nRisk: Cleanup patterns could cross tenant, project, or dataset boundaries. <br>\nMitigation: Restrict cleanup to explicitly tagged test data and include tenant or project scoping in destructive operations. <br>\n\n\n## Reference(s): <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with SQL and Python examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May propose database mutation, cleanup, API-call, and data-masking patterns that require review before execution.] <br>\n\n## Skill Version(s): <br>\n1.4.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: qa-test-data-engineering Owner: kokxi Summary: 当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。 触发场景：造数、批量造数、数据构造、测试数据脱敏、测试数据合规、数据工厂、造1000条、造大量数据、环境数据不足需要批量构造时。 Use when the user asks about: bulk test data generation, production data masking and anonymization, data compliance, and data factor","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"适用场景：\n├─ 少量数据\n├─ 复杂业务数据\n├─ 一次性数据\n└─ 调试用途\n\n方法：\n├─ 数据库直接插入\n├─ 管理后台创建\n├─ 接口调用创建\n└─ 脚本批量创建"},{"language":"text","snippet":"适用场景：\n├─ 批量数据\n├─ 标准化数据\n├─ 重复性数据\n└─ 自动化测试\n\n工具：\n├─ Faker（Python/JS）\n├─ Mockaroo（在线）\n├─ Factory Bot（Ruby）\n└─ 自建工厂类"},{"language":"sql","snippet":"-- 示例：用户数据构造\nINSERT INTO users (username, email, phone, status, created_at)\nVALUES \n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());"},{"language":"python","snippet":"# 示例：通过API构造订单数据\ndef create_test_order(user_id, product_id, quantity=1):\n    response = requests.post(\n        f\"{BASE_URL}/orders\",\n        json={\n            \"user_id\": user_id,\n            \"product_id\": product_id,\n            \"quantity\": quantity\n        },\n        headers={\"Authorization\": f\"Bearer {token}\"}\n    )\n    return response.json()[\"order_id\"]"},{"language":"text","snippet":"├─ 按用例清理\n│   ├─ 每个用例执行后清理\n│   ├─ 优点：数据隔离好\n│   └─ 缺点：效率低\n│\n├─ 按模块清理\n│   ├─ 每个模块测试后清理\n│   ├─ 优点：效率较高\n│   └─ 缺点：隔离性一般\n│\n├─ 按批次清理\n│   ├─ 每个批次测试后清理\n│   ├─ 优点：效率高\n│   └─ 缺点：隔离性差\n│\n└─ 定期清理\n    ├─ 定期清理历史数据\n    ├─ 优点：保持数据量可控\n    └─ 缺点：可能影响测试"},{"language":"sql","snippet":"-- 示例：清理测试数据\n-- 方法1：按时间清理\nDELETE FROM orders WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);\n\n-- 方法2：按标记清理\nDELETE FROM orders WHERE is_test = 1;\n\n-- 方法3：按用户清理\nDELETE FROM orders WHERE user_id IN (SELECT id FROM users WHERE is_test = 1);"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: qa-test-data-engineering\ndescription: >-\n  当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。 触发场景：造数、批量造数、数据构造、测试数据脱敏、测试数据合规、数据工厂、造1000条、造大量数据、环境数据不足需要批量构造时。 Use when the user asks about: bulk test data generation, production data masking and anonymization, data compliance, and data factory architecture.\nlicense: MIT\nallowed-tools: Read Grep Glob Bash\nmetadata:\n  display-name: \"Test Data Engineering\"\n  version: \"1.8.0\"\n  when-to-use: \"用户说\\\"造数\\\"、\\\"批量造数\\\"、\\\"数据构造\\\"、\\\"测试数据脱敏\\\"、\\\"测试数据合规\\\"、\\\"数据工厂\\\"、\\\"造1000条\\\"、\\\"造大量数据\\\"、需要管理测试数据、环境数据不足需要批量构造时\"\n  related-skills: \"{\\\"upstream\\\":[\\\"qa-test-env-data\\\",\\\"qa-req-deconstruction\\\"],\\\"downstream\\\":[\\\"qa-execution-observation\\\",\\\"qa-api-testing\\\"]}\"\n  references: \"[\\\"references/data-masking.md\\\"]\"\n  input-format: \"{\\\"required\\\":[{\\\"name\\\":\\\"测试策略\\\",\\\"type\\\":\\\"object\\\",\\\"description\\\":\\\"来自qa-test-strategy-design的测试策略\\\"},{\\\"name\\\":\\\"数据需求\\\",\\\"type\\\":\\\"string\\\",\\\"description\\\":\\\"测试数据的类型和规模需求\\\"}],\\\"optional\\\":[{\\\"name\\\":\\\"数据源信息\\\",\\\"type\\\":\\\"string\\\",\\\"description\\\":\\\"可用数据源描述\\\"}]}\"\n  output-format: \"{\\\"traceability\\\":[\\\"每套造数方案带唯一ID（DATA-XXXX）\\\"],\\\"structure\\\":[{\\\"data_strategy\\\":\\\"测试数据策略\\\"},{\\\"data_generation\\\":\\\"数据生成方案\\\"},{\\\"data_mask_rules\\\":\\\"数据脱敏规则\\\"},{\\\"data_management\\\":\\\"数据管理流程\\\"}]}\"\n  error-recovery-guidance: \"{\\\"on_failure\\\":\\\"造数方案遗漏合规要求时回退到需求解构补充\\\",\\\"retry_behavior\\\":\\\"补充合规要求后重新设计造数方案\\\"}\"\n  categories: \"[\\\"Development\\\",\\\"Testing\\\",\\\"DevOps\\\"]\"\n  depth-requirement: \"{\\\"reference_value\\\":\\\"根据数据需求调整造数深度：简单×1/中等×2/复杂×3\\\",\\\"minimum\\\":\\\"至少覆盖数据构造、脱敏、合规3个维度\\\"}\"\n---\n> ⚠️ 本技能单独使用效果有限，建议配合完整技能集（12 步工作流）使用。安装：npx skills add Kokxi/qa-test-skills\n\n# 测试数据工程\n\n## 核心原则\n\n测试数据是测试的基础，好的数据管理让测试可重复、可追溯。\n\n## 数据构造方法\n\n### 手动构造\n\n```text\n适用场景：\n├─ 少量数据\n├─ 复杂业务数据\n├─ 一次性数据\n└─ 调试用途\n\n方法：\n├─ 数据库直接插入\n├─ 管理后台创建\n├─ 接口调用创建\n└─ 脚本批量创建\n```\n\n### 数据工厂\n\n```text\n适用场景：\n├─ 批量数据\n├─ 标准化数据\n├─ 重复性数据\n└─ 自动化测试\n\n工具：\n├─ Faker（Python/JS）\n├─ Mockaroo（在线）\n├─ Factory Bot（Ruby）\n└─ 自建工厂类\n```\n\n### 数据库脚本\n\n```sql\n-- 示例：用户数据构造\nINSERT INTO users (username, email, phone, status, created_at)\nVALUES \n    ('testuser001', 'test1@example.com', '13800000001', 'active', NOW()),\n    ('testuser002', 'test2@example.com', '13800000002', 'active', NOW()),\n    ('testuser003', 'test3@example.com', '13800000003', 'inactive', NOW());\n```\n\n### API构造\n\n```python\n# 示例：通过API构造订单数据\ndef create_test_order(user_id, product_id, quantity=1):\n    response = requests.post(\n        f\"{BASE_URL}/orders\",\n        json={\n            \"user_id\": user_id,\n            \"product_id\": product_id,\n            \"quantity\": quantity\n        },\n        headers={\"Authorization\": f\"Bearer {token}\"}\n    )\n    return response.json()[\"order_id\"]\n```\n\n## 加载时机\n\n| 什么时候读 | 读哪个 |\n|-----------|--------|\n| 做脱敏规则与实现时 | [`references/data-masking.md`](references/data-masking.md) |\n\n> `数据脱敏`的完整内容已下沉至 `references/data-masking.md`，避免每次触发都占用上下文。\n\n## 数据清理\n\n> 📌 本节与 qa-test-env-data「数据清理」内容同步，修改时请同步更新两处。\n\n### 清理策"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn71y9b23csfx0ykgm55d5m9x5891zt8\",\n  \"slug\": \"qa-test-data-engineering\",\n  \"version\": \"1.8.0\",\n  \"publishedAt\": 1790656157577\n}"},{"path":"references/data-masking.md","content":"# 测试数据脱敏详解\n\n> 本文是 `qa-test-data-engineering` 的**测试数据脱敏详解**。做脱敏规则与实现时读本文；\n其余部分留在 SKILL.md，不必读本文。\n\n---\n\n\n> 📌 本节与 qa-test-env-data「数据脱敏」内容同步，修改时请同步更新两处。qa-test-env-data 为简化版，完整版见此处。\n\n### 脱敏规则\n\n```text\n个人信息：\n├─ 手机号：138****1234\n├─ 身份证：110***********1234\n├─ 邮箱：test****@example.com\n├─ 姓名：*三\n├─ 地址：北京市***\n└─ 银行卡：6222****1234\n\n业务数据：\n├─ 金额：保留整数位，小数随机\n├─ 订单号：保留格式，数字随机\n├─ 时间：保留格式，时间随机\n└─ 关联ID：保持关联关系\n```\n\n### 脱敏方法\n\n```text\n├─ 替换法：用*替换部分字符\n│   └─ 示例：138****1234\n│\n├─ 加密法：用加密算法处理\n│   └─ 示例：AES加密后存储\n│\n├─ 截断法：只保留部分字符\n│   └─ 示例：北京市***\n│\n├─ 随机法：用随机值替换\n│   └─ 示例：姓名随机生成\n│\n└─ 哈希法：用哈希值替换\n    └─ 示例：SHA256哈希\n```\n\n### 脱敏实现\n\n```python\n# 示例：Python脱敏函数\nimport hashlib\nimport random\n\ndef mask_phone(phone):\n    \"\"\"手机号脱敏：138****1234\"\"\"\n    return phone[:3] + \"****\" + phone[-4:]\n\ndef mask_id_card(id_card):\n    \"\"\"身份证脱敏：110***********1234\"\"\"\n    return id_card[:3] + \"*\" * 10 + id_card[-4:]\n\ndef mask_name(name):\n    \"\"\"姓名脱敏：*三\"\"\"\n    return \"*\" + name[-1]\n\ndef mask_email(email):\n    \"\"\"邮箱脱敏：test****@example.com\"\"\"\n    local, domain = email.split(\"@\")\n    return local[:4] + \"****@\" + domain\n```"},{"path":"skill-card.md","content":"## Description:\n\nGuides bulk test-data creation, data masking, and test-data lifecycle management for software testing.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[kokxi](https://clawhub.ai/user/kokxi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and QA engineers use this skill to plan and generate repeatable test datasets, mask sensitive data, and manage test-data cleanup.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The optional command to install the broader skill set could fetch unreviewed code.\n\nMitigation: Verify the publisher and repository, and prefer a pinned or reviewed version before running it.\n\nRisk: Running example SQL or API operations against live systems could change production data.\n\nMitigation: Use isolated test environments and review the target and affected records before execution.\n\n## Reference(s):\n\n- [Test-data masking reference](artifact/references/data-masking.md)\n- [ClawHub skill release](https://clawhub.ai/kokxi/skills/qa-test-data-engineering)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Code, Configuration, SQL queries]\n\n**Output Format:** [Markdown with example SQL and Python code]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Test-data plans cover generation, masking, and lifecycle management, with a DATA-XXXX identifier for each plan.]\n\n## Skill Version(s):\n\n1.8.0 (source: skill metadata and ClawHub release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。 触发场景：造数、批量造数、数据构造、测试数据脱敏、测试数据合规、数据工厂、造1000条、造大量数据、环境数据不足需要批量构造时。 Use when the user asks about: bulk test data generation, production data masking and anonymization, data compliance, and data factory architecture. Skill: qa-test-data-engineering Owner: kokxi Summary: 当需要批量构造测试数据（造 1000 条订单、准备各种状态的用户数据）、或者需要使用真实生产数据但需要脱敏时使用此技能。覆盖造数策略（API 造数/DB 直接构造/数据工厂）、脱敏方案（敏感字段识别/替换/掩码）、合规要求（GDPR/等保/个保法）和数据工厂架构设计。手工一条条造数据效率太低——测试数据工程的目标是让造数变成一键操作。 触发场景：造数、批量造数、数据构造、测试数据脱敏、测试数据合规、数据工厂、造1000条、造大量数据、环境数据不足需要批量构造时。 Use when the user asks about: bulk test data generation, production data masking and anonymization, data compliance, and data factor","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1001,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T23:56:08.483Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T23:56:08.483Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T03:53:29.218Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}