skills/smithery.ai/persona-template

persona-template

SKILL.md

Persona Template Skill

Purpose

Generate professional user persona documents and empathy map visualizations from structured data and templates.

Capabilities

  • Fill persona templates with research data
  • Generate persona cards in multiple formats
  • Create empathy map visualizations
  • Export to PDF, PNG, and Markdown
  • Support multiple persona template styles
  • Generate persona comparison views

Target Processes

  • persona-development.js (personaDocumentationTask)
  • user-research.js (personaCreationTask)

Integration Points

  • Template engines (Handlebars, EJS)
  • PDF generation (Puppeteer, PDFKit)
  • Image generation for persona cards

Input Schema

{
  "type": "object",
  "properties": {
    "personaData": {
      "type": "object",
      "properties": {
        "name": { "type": "string" },
        "photo": { "type": "string" },
        "demographics": {
          "type": "object",
          "properties": {
            "age": { "type": "number" },
            "occupation": { "type": "string" },
            "location": { "type": "string" },
            "education": { "type": "string" }
          }
        },
        "goals": { "type": "array", "items": { "type": "string" } },
        "frustrations": { "type": "array", "items": { "type": "string" } },
        "behaviors": { "type": "array", "items": { "type": "string" } },
        "quote": { "type": "string" },
        "bio": { "type": "string" }
      }
    },
    "empathyMap": {
      "type": "object",
      "properties": {
        "says": { "type": "array" },
        "thinks": { "type": "array" },
        "does": { "type": "array" },
        "feels": { "type": "array" }
      }
    },
    "templateStyle": {
      "type": "string",
      "enum": ["minimal", "detailed", "visual", "ux-agency"],
      "default": "detailed"
    },
    "outputFormat": {
      "type": "string",
      "enum": ["pdf", "png", "markdown", "html"],
      "default": "markdown"
    }
  },
  "required": ["personaData"]
}

Output Schema

{
  "type": "object",
  "properties": {
    "personaDocument": {
      "type": "string",
      "description": "Path to generated persona document"
    },
    "empathyMapDocument": {
      "type": "string",
      "description": "Path to generated empathy map"
    },
    "cardImage": {
      "type": "string",
      "description": "Path to persona card image"
    },
    "markdownContent": {
      "type": "string",
      "description": "Markdown content if applicable"
    }
  }
}

Usage Example

const result = await skill.execute({
  personaData: {
    name: 'Sarah Chen',
    demographics: {
      age: 34,
      occupation: 'Product Manager',
      location: 'San Francisco, CA'
    },
    goals: ['Streamline team workflows', 'Reduce meeting overhead'],
    frustrations: ['Too many tools', 'Information silos'],
    quote: 'I need to see the big picture while managing details'
  },
  empathyMap: {
    says: ['We need better collaboration'],
    thinks: ['Is there an easier way?'],
    does: ['Checks multiple apps daily'],
    feels: ['Overwhelmed by notifications']
  },
  templateStyle: 'detailed',
  outputFormat: 'pdf'
});
Weekly Installs
1
First Seen
10 days ago
Installed on
claude-code1