Documentation
¶
Overview ¶
Package facilitator provides an omnichannel Facilitator role for omniskill-compatible systems.
The Facilitator role enables AI agents to facilitate collaboration across channels:
- Prepares meetings (gathers pre-reads, creates agendas)
- Facilitates discussions (tracks actions, decisions, questions)
- Creates artifacts (meeting notes, summaries, action items)
- Integrates with external systems (Confluence, Aha, Jira, GitHub)
Required Skills ¶
The Meeting PM role requires the following skills:
- meeting: OmniMeet skill for joining/participating in meetings
- google: Google Docs/Sheets/Slides for document access
- confluence: Confluence for publishing meeting notes
- aha: Aha for product management integration (optional)
Workflows ¶
The role provides three main workflows:
- prepare: Gather pre-reads, create agenda, brief participants
- facilitate: Track action items, decisions, and discussions
- wrapup: Generate notes, publish to Confluence, create follow-ups
Usage ¶
role := facilitator.New(facilitator.Config{
DefaultConfluenceSpace: "TEAM",
DefaultAhaProduct: "PRODUCT-1",
})
// Initialize with required skills
err := role.Init(ctx, map[string]skill.Skill{
"meeting": meetingSkill,
"google": googleSkill,
"confluence": confluenceSkill,
"aha": ahaSkill,
})
Index ¶
- Constants
- type AgendaItem
- type Config
- type Decision
- type Document
- type FacilitatorRole
- func (r *FacilitatorRole) Behaviors() []role.Behavior
- func (r *FacilitatorRole) Close() error
- func (r *FacilitatorRole) Description() string
- func (r *FacilitatorRole) EndSession() *MeetingSession
- func (r *FacilitatorRole) GetSkill(name string) skill.Skill
- func (r *FacilitatorRole) Init(ctx context.Context, skills map[string]skill.Skill) error
- func (r *FacilitatorRole) Metrics() []role.MetricDefinition
- func (r *FacilitatorRole) Name() string
- func (r *FacilitatorRole) OptionalSkills() []string
- func (r *FacilitatorRole) PhasePrompt(phase Phase) string
- func (r *FacilitatorRole) RequiredSkills() []string
- func (r *FacilitatorRole) Session() *MeetingSession
- func (r *FacilitatorRole) Spec() *role.RoleSpec
- func (r *FacilitatorRole) StartSession(meetingID, meetingName string) *MeetingSession
- func (r *FacilitatorRole) SystemPrompt(ctx context.Context) (string, error)
- func (r *FacilitatorRole) Version() string
- func (r *FacilitatorRole) Workflows() []role.Workflow
- type MeetingSession
- type Note
- type Participant
- type Phase
- type Question
- type TranscriptSegment
Constants ¶
const ( PhasePreMeeting = session.PhasePreMeeting PhaseMeeting = session.PhaseMeeting PhasePostMeeting = session.PhasePostMeeting )
Re-export phase constants.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// DefaultConfluenceSpace is the Confluence space for meeting notes.
DefaultConfluenceSpace string
// DefaultAhaProduct is the Aha product for feature/initiative creation.
DefaultAhaProduct string
// EnableTranscription enables real-time transcription.
EnableTranscription bool
// EnableActionTracking enables automatic action item detection.
EnableActionTracking bool
// MeetingNotesTemplate is a custom template for meeting notes.
// If empty, uses the default template.
MeetingNotesTemplate string
}
Config configures the Meeting PM role.
type FacilitatorRole ¶
type FacilitatorRole struct {
// contains filtered or unexported fields
}
FacilitatorRole implements the Meeting Program Manager role.
func New ¶
func New(cfg Config) *FacilitatorRole
New creates a new Meeting PM role with the given configuration.
func (*FacilitatorRole) Behaviors ¶
func (r *FacilitatorRole) Behaviors() []role.Behavior
Behaviors returns the behaviors defined for this role.
func (*FacilitatorRole) Close ¶
func (r *FacilitatorRole) Close() error
Close releases any resources held by the role.
func (*FacilitatorRole) Description ¶
func (r *FacilitatorRole) Description() string
Description returns a human-readable description.
func (*FacilitatorRole) EndSession ¶
func (r *FacilitatorRole) EndSession() *MeetingSession
EndSession ends the current meeting session.
func (*FacilitatorRole) GetSkill ¶
func (r *FacilitatorRole) GetSkill(name string) skill.Skill
GetSkill returns a skill by name, or nil if not available.
func (*FacilitatorRole) Metrics ¶
func (r *FacilitatorRole) Metrics() []role.MetricDefinition
Metrics returns the metric definitions for this role.
func (*FacilitatorRole) Name ¶
func (r *FacilitatorRole) Name() string
Name returns the role identifier.
func (*FacilitatorRole) OptionalSkills ¶
func (r *FacilitatorRole) OptionalSkills() []string
OptionalSkills returns skills that enhance the role but aren't required.
func (*FacilitatorRole) PhasePrompt ¶
func (r *FacilitatorRole) PhasePrompt(phase Phase) string
PhasePrompt returns the prompt for a specific meeting phase.
func (*FacilitatorRole) RequiredSkills ¶
func (r *FacilitatorRole) RequiredSkills() []string
RequiredSkills returns the skills this role needs.
func (*FacilitatorRole) Session ¶
func (r *FacilitatorRole) Session() *MeetingSession
Session returns the current meeting session, if any.
func (*FacilitatorRole) Spec ¶
func (r *FacilitatorRole) Spec() *role.RoleSpec
Spec returns the complete role specification for Facilitator.
func (*FacilitatorRole) StartSession ¶
func (r *FacilitatorRole) StartSession(meetingID, meetingName string) *MeetingSession
StartSession begins a new meeting session.
func (*FacilitatorRole) SystemPrompt ¶
func (r *FacilitatorRole) SystemPrompt(ctx context.Context) (string, error)
SystemPrompt returns the role's system prompt.
func (*FacilitatorRole) Version ¶ added in v0.1.1
func (r *FacilitatorRole) Version() string
Version returns the role version.
func (*FacilitatorRole) Workflows ¶
func (r *FacilitatorRole) Workflows() []role.Workflow
Workflows returns the role's workflows.
type MeetingSession ¶
MeetingSession is an alias for session.Session for convenience.
func NewMeetingSession ¶
func NewMeetingSession(meetingID, meetingName string) *MeetingSession
NewMeetingSession creates a new meeting session.
type TranscriptSegment ¶
type TranscriptSegment = session.TranscriptSegment
Re-export session types for convenience.