agentleFS
MicrosoftKnown publishermicrosoft/aibast-agents-library/rapp_ai/.claude/skills/generate-demo/SKILL.md

generate-demo

Skill8 starsChanged 3 months agoMITView on GitHub

Generate realistic static demo endpoints for simulating APIs like CRM, support tickets, etc. Based on scenario type, generate realistic JSON data: Support Schema: Inventory Schema: Generate multiple response files for the scenario:

  • Commits and pushes

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create/update the main endpoint that apps fetch:

    line 155
  2. Very specific:

    Use description to customize: /generate-demo crm "struggling startup with 2 deals"

    line 194

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Generate Demo Skill

Generate realistic static demo endpoints for simulating APIs like CRM, support tickets, etc.

Usage

/generate-demo <scenario> [description]

Examples:

/generate-demo crm
/generate-demo crm "enterprise software sales with 5 active deals"
/generate-demo support "IT helpdesk with mixed priority tickets"
/generate-demo inventory "warehouse with low stock alerts"

Supported Scenarios

ScenarioDescription
crmSales CRM with deals, contacts, pipeline stages
supportHelp desk with tickets, priorities, agents
inventoryProduct inventory with stock levels
calendarMeeting scheduler with appointments
customDescribe your own scenario

Execution

Step 1: Parse Input

scenario = first argument (crm, support, inventory, calendar, custom)
description = remaining text (optional context for generation)

Step 2: Generate Demo Data

Based on scenario type, generate realistic JSON data:

CRM Schema:

{
  "assistant_response": "## Your Sales Pipeline\n\n| Deal | Company | Value | Stage | Close Date |\n|------|---------|-------|-------|------------|\n...",
  "voice_response": "You have X active deals worth $Y total.",
  "agent_logs": "[Demo Mode] CRM Agent - Retrieved pipeline data",
  "user_guid": "demo-user-crm",
  "mode": "demo",
  "data": {
    "deals": [
      {
        "id": "deal_001",
        "name": "Enterprise License",
        "company": "Acme Corp",
        "value": 50000,
        "stage": "negotiation",
        "probability": 75,
        "close_date": "2025-02-15",
        "contact": "Jane Smith",
        "notes": "Final pricing review scheduled"
      }
    ],
    "summary": {
      "total_deals": 5,
      "total_value": 185000,
      "weighted_value": 125000,
      "stages": {
        "prospecting": 1,
        "qualification": 1,
        "proposal": 1,
        "negotiation": 2
      }
    }
  }
}

Support Schema:

{
  "assistant_response": "## Open Tickets\n\n| ID | Subject | Priority | Status | Assigned |\n|----|---------|----------|--------|----------|\n...",
  "voice_response": "You have X open tickets, Y are high priority.",
  "agent_logs": "[Demo Mode] Support Agent - Retrieved ticket queue",
  "user_guid": "demo-user-support",
  "mode": "demo",
  "data": {
    "tickets": [
      {
        "id": "TKT-1234",
        "subject": "Login issue after password reset",
        "priority": "high",
        "status": "open",
        "created": "2025-01-30T10:30:00Z",
        "customer": "john.doe@company.com",
        "assigned_to": "Agent Sarah",
        "category": "authentication"
      }
    ],
    "summary": {
      "total_open": 12,
      "high_priority": 3,
      "avg_response_time": "2.5 hours"
    }
  }
}

Inventory Schema:

{
  "assistant_response": "## Inventory Status\n\n| SKU | Product | Stock | Status | Reorder |\n|-----|---------|-------|--------|----------|\n...",
  "voice_response": "X items are low on stock and need reordering.",
  "agent_logs": "[Demo Mode] Inventory Agent - Retrieved stock levels",
  "user_guid": "demo-user-inventory",
  "mode": "demo",
  "data": {
    "products": [
      {
        "sku": "WIDGET-001",
        "name": "Premium Widget",
        "stock": 15,
        "min_stock": 50,
        "status": "low",
        "reorder_qty": 100,
        "supplier": "WidgetCo",
        "last_restock": "2025-01-15"
      }
    ],
    "summary": {
      "total_products": 150,
      "low_stock": 8,
      "out_of_stock": 2
    }
  }
}

Step 3: Create Response Files

Generate multiple response files for the scenario:

api-demo/scenarios/<scenario>/
├── overview.json      # Dashboard/summary view
├── list.json          # List all items
├── detail.json        # Single item detail
├── create.json        # Response after creating item
├── update.json        # Response after updating item
└── search.json        # Search results

Step 4: Update Active Scenario

Create/update the main endpoint that apps fetch:

# Copy overview as the default response
cp api-demo/scenarios/<scenario>/overview.json api-demo/responses/<scenario>.json

Step 5: Commit and Push

cd /Users/kodywildfeuer/Documents/GitHub/CommunityRAPP
git add api-demo/
git commit -m "Generate: <scenario> demo data - <description>"
git push origin main

Step 6: Output Results

✅ Demo scenario generated: <scenario>

📁 Files created:
- api-demo/scenarios/<scenario>/overview.json
- api-demo/scenarios/<scenario>/list.json
- api-demo/scenarios/<scenario>/detail.json
- api-demo/responses/<scenario>.json

🔗 Test endpoints:
- Overview: https://raw.githubusercontent.com/kody-w/CommunityRAPP/main/api-demo/responses/<scenario>.json
- List: https://raw.githubusercontent.com/kody-w/CommunityRAPP/main/api-demo/scenarios/<scenario>/list.json

💡 Use in your app:
fetch('https://raw.githubusercontent.com/kody-w/CommunityRAPP/main/api-demo/responses/<scenario>.json')

Tips

  • Generated data uses realistic names, dates, and values
  • Each run creates fresh data (previous scenario preserved in scenarios/)
  • Use description to customize: /generate-demo crm "struggling startup with 2 deals"
  • Chain scenarios: generate CRM, then support for same "company"

Triggering from Apps

Apps can simulate different states by fetching different scenario files:

// Fetch based on user action
const scenario = userAction === 'view_pipeline' ? 'overview' : 'list';
const url = `https://raw.githubusercontent.com/kody-w/CommunityRAPP/main/api-demo/scenarios/crm/${scenario}.json`;
const response = await fetch(url);

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.