Skip to content

Persona Plugin Architecture — minimal interface + registry #16

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/*

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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