// internal/skills/retrospective/skill.go package retrospective import ( "context" "encoding/json" "github.com/mathiasbq/supervisor/internal/registry" ) // CompleteFunc is the function used to call a local model. type CompleteFunc func(ctx context.Context, model, system, user string) (string, int64, error) // Config holds retrospective skill configuration. type Config struct { SkillPrompt string DefaultModel string SessionsDir string CompleteFunc CompleteFunc } // Skill implements registry.Skill for the retrospective tool. type Skill struct { cfg Config } // New constructs a retrospective Skill. func New(cfg Config) *Skill { return &Skill{cfg: cfg} } // Name returns the skill name. func (s *Skill) Name() string { return "retrospective" } // Tools returns the MCP tool definitions. func (s *Skill) Tools() []registry.ToolDef { return []registry.ToolDef{ { Name: "retrospective", Description: "Consult a local model to analyse a completed session and identify what is novel or worth preserving as organizational knowledge.", InputSchema: json.RawMessage(`{ "type": "object", "required": ["session_id"], "properties": { "session_id": {"type": "string"}, "model": {"type": "string"} } }`), }, } }