Packages
nous
0.15.2
0.17.0
0.16.6
0.16.5
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.8
0.15.7
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.17
0.12.16
0.12.15
0.12.14
0.12.13
0.12.12
0.12.11
0.12.9
0.12.7
0.12.6
0.12.5
0.12.3
0.12.2
0.12.0
0.11.3
0.11.0
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.5.0
AI agent framework for Elixir with multi-provider LLM support
Current section
Files
Jump to
Current section
Files
lib/nous/skills/explain_code.ex
defmodule Nous.Skills.ExplainCode do
@moduledoc "Built-in skill for code explanation."
use Nous.Skill, tags: [:explain, :understand, :learn], group: :coding
@impl true
def name, do: "explain_code"
@impl true
def description, do: "Explains code at the appropriate level of detail"
@impl true
def instructions(_agent, _ctx) do
"""
You are a code explanation specialist. When explaining code:
1. **Start High-Level**: Begin with what the code does and why it exists
2. **Key Concepts**: Identify the core patterns, algorithms, or architectural decisions
3. **Walk Through**: Explain the flow step by step, focusing on non-obvious parts
4. **Context**: Explain how this code fits into the larger system
5. **Trade-offs**: Mention why this approach was chosen over alternatives
Adapt your explanation depth to the audience:
- For beginners: explain language features and basic patterns
- For experienced developers: focus on domain logic and architectural decisions
- For domain experts: focus on implementation details and edge cases
"""
end
@impl true
def match?(input) do
input = String.downcase(input)
String.contains?(input, [
"explain",
"what does this",
"how does this",
"walk me through",
"understand this"
])
end
end