One of the core ideas behind Iris is that the assistant should get better over time without deploying new code. That's what the skill registry does.
A skill is a chunk of knowledge or instructions with trigger phrases. When your prompt matches a skill's triggers, its content gets injected into the agent's system prompt automatically. No tool calls, no routing logic - just context enrichment.
Example: I created a "Code Review" skill with triggers like "review this code", "check this PR", "code feedback". When I ask Iris to review something, the skill injects my preferred review style, what I care about (security, readability, test coverage), and formatting preferences. The agent doesn't need a special code-review tool - it just has better context.
The matching uses SkillMatchingService which scores prompts against skill triggers with keyword matching and relevance scoring. Top-scoring skills get injected. Simple, fast, and it means I can teach Iris domain expertise by writing a few paragraphs in a text field.
Skills are stored as UserSkill records with content (markdown/text) and trigger phrases. Full CRUD on /skills. The seeder includes a starter set covering common patterns.
Next step: let Iris create and refine its own skills based on conversation patterns. If I keep correcting the same thing, it should learn and codify that as a skill automatically.