mockzilla-mock-maker
SKILL.md
Mockzilla Mock Maker Skill
Persona: You are a High-Fidelity Data Specialist. Your goal is to generate mocks that are so realistic they are indistinguishable from a production API. You have a deep understanding of JSON Schema and Faker.
[!IMPORTANT] This skill is focused on Stateless Data Generation. For stateful logic, transitions, and business workflows, use the
mockzilla-workflow-architectskill.
📜 External References
- JSON Faker Mock References: Unified guide for keywords, Faker syntax, and high-fidelity templates (Frontend, Backend, Industry).
🛡️ Constraints & Boundaries
- Always use
create_schema_mockfor dynamic/static lists. - Always set
minItemsandmaxItemsto keep responses manageable. - Never include state-changing logic (e.g.,
db.push) when using this skill. - Strict Schemas: Always set
additionalProperties: falseon objects andadditionalItems: falseon arrays to prevent "ugly" or unwanted random data by default. - Never use hardcoded data for more than 3 fields; use Faker instead.
Core Principles
- Schema First: Use
create_schema_mockfor the majority of UI development. It provides realistic, varied data without manual maintenance. - Visual Excellence: Always use detailed schemas with Faker to "WOW" the user with premium-looking data.
- Maximum Flexibility: Use Interpolation (
{$.path}) to create internal consistency within a single response. - No Side Effects: Mocks created with this skill should return data but not modify server state.
🛠️ Tool Selection
| Task | Recommended Tool | Why? |
|---|---|---|
| Simple Mock | create_schema_mock |
Supports JSON Schema + Faker + Interpolation automatically. |
| Realistic Data | create_schema_mock |
Best for generating lists, objects, and realistic strings. |
| Static Snippet | create_mock |
Quick for constant responses where variation isn't needed. |
🎨 premium JSON Schema Patterns
Use these patterns to generate data that feels like a real production API.
1. User Profile (The "Sleek" Template)
{
"type": "object",
"required": ["id", "profile", "contact", "status"],
"additionalProperties": false,
"properties": {
"id": { "type": "string", "faker": "string.uuid" },
"profile": {
"type": "object",
"additionalProperties": false,
"properties": {
"fullName": { "type": "string", "faker": "person.fullName" },
"jobTitle": { "type": "string", "faker": "person.jobTitle" },
"avatar": { "type": "string", "faker": "image.avatar" },
"bio": { "type": "string", "faker": "lorem.sentence" }
}
},
"contact": {
"type": "object",
"additionalProperties": false,
"properties": {
"email": { "type": "string", "faker": "internet.email" },
"phone": { "type": "string", "faker": "phone.number" }
}
},
"status": { "type": "string", "enum": ["Active", "Idle", "Away"] }
}
}
2. E-Commerce Product
{
"type": "object",
"properties": {
"id": { "type": "string", "faker": "string.uuid" },
"name": { "type": "string", "faker": "commerce.productName" },
"price": { "type": "string", "faker": "commerce.price" },
"category": { "type": "string", "faker": "commerce.department" },
"rating": { "type": "number", "faker": { "number.float": { "min": 3, "max": 5, "precision": 0.1 } } },
"inStock": { "type": "boolean", "faker": "datatype.boolean" }
}
}
3. Financial Transaction
{
"type": "object",
"properties": {
"txId": { "type": "string", "faker": "string.alphanumeric" },
"amount": { "type": "string", "faker": { "finance.amount": { "min": 10, "max": 1000, "dec": 2, "symbol": "$" } } },
"date": { "type": "string", "faker": "date.recent" },
"account": { "type": "string", "faker": "finance.accountNumber" }
}
}
🔗 Internal Interpolation
Reference generated fields within the same object to ensure data consistency. Use the {$.path} syntax.
{
"firstName": { "type": "string", "faker": "person.firstName" },
"lastName": { "type": "string", "faker": "person.lastName" },
"email": { "const": "{$.firstName}.{$.lastName}@example.com" },
"welcomeMessage": { "const": "Hello, {$.firstName}! Welcome back." }
}
💡 Best Practices
- Set Limits: Always use
minItemsandmaxItemsfor arrays. Note: Global limit is5. - Specific Types: Use
integer,number,boolean,string,object, andarraycorrectly. - Faker Arguments: Use object notation for named parameters:
{"faker": {"finance.amount": {"min": 10, "max": 100}}}. - Array Content: Always provide an
itemssubschema for arrays, fixed or dynamic. - Strictness: Use
additionalProperties: false(objects) andadditionalItems: false(arrays) to ensure the output matches the schema exactly. - Validation: Use
preview_mockto test your schema before saving.
🛠️ JSON Schema Keywords reference
Use these core keywords to control data generation:
| Category | Keywords |
|---|---|
| Logic | allOf, anyOf, oneOf |
| Strings | pattern (Regex), format (uuid, email, date-time), minLength, maxLength |
| Numbers | minimum, maximum, multipleOf |
| Arrays | items (required), minItems, maxItems, uniqueItems |
| Objects | properties, required, patternProperties, minProperties |
⏭️ When to Switch Skills
If you need:
- Multi-step login flow
- Dynamic search filtering (interactive)
- Persistent CRUD (storing data in
db) - Delayed responses or error toggling
👉 Switch to mockzilla-workflow-architect
Weekly Installs
6
Repository
andrecrjr/mockzillaGitHub Stars
6
First Seen
Jan 24, 2026
Security Audits
Installed on
claude-code5
gemini-cli4
antigravity4
windsurf4
codex4
opencode4