Skip to content

Persona Plugin Architecture — minimal interface + registry #16

@DevVig

Description

@DevVig

Summary
Add a minimal, optional plugin interface to register custom personas that provide domain-specific prompts and output validation. Keep clean separation from core and ensure clean uninstall.

Why

  • Extensibility for specialized domains without polluting core
  • Optional by design; project choice

Scope

  • Define base class and registry; load plugins if present

Tasks

  • Define a2a/persona_plugins.py with PersonaPlugin base and PersonaRegistry
  • Add loader that checks project folder .a2dev/personas/ for plugins
  • Methods: get_expertise_prompt(), validate_output(output) -> bool
  • Wire registry into role construction points (UX, Architect, QA, etc.)
  • Document lifecycle and clean uninstall
  • Provide example plugin under examples/personas/

Acceptance Criteria

  • Core works unchanged without plugins
  • If a plugin folder is present, persona prompt is augmented and validation is applied
  • Removing plugin leaves no residual behavior

Risks & Mitigations

  • Interface creep -> keep minimal surface, document versioning

References

  • suggestion.md (Plugin Architecture for Custom Personas)
  • a2a/personas.py, a2a/roles/*

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions