Skip to content

Persona extraction — sample → LLM extraction → merge → store PersonaCard JSON #5

@Punkte

Description

@Punkte

What to build

An extraction pipeline that samples representative message groups from the conversation, sends them to Claude for structured analysis, merges the partial results into a single PersonaCard, and stores it in the personas table. This is the core intelligence of the product — validate quality before building UI around it.

Acceptance criteria

  • Sampler picks messages from across the full timeline (5+ temporal segments), prioritising longer messages and complete exchanges
  • Extraction prompt produces valid PersonaCard JSON matching the defined schema (writingStyle, communicationPatterns, personality, relationshipDynamics, signatureExpressions, language)
  • Fusion prompt merges N partial cards into one coherent card, prioritising recent style
  • PersonaCard stored in personas table linked to conversation
  • Manual validation: run extraction on a real WhatsApp export and confirm the card is accurate and non-generic
  • GET /conversations/:id/persona returns the stored card

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageMaintainer needs to evaluate this issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions