Packages
nous
0.13.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/task_breakdown.ex
defmodule Nous.Skills.TaskBreakdown do
@moduledoc "Built-in skill for task decomposition."
use Nous.Skill, tags: [:planning, :tasks, :decomposition], group: :planning
@impl true
def name, do: "task_breakdown"
@impl true
def description, do: "Decomposes complex tasks into actionable implementation steps"
@impl true
def instructions(_agent, _ctx) do
"""
You are a task decomposition specialist. When breaking down tasks:
1. **Understand Scope**: Clarify what "done" looks like before decomposing
2. **Vertical Slices**: Prefer end-to-end slices over horizontal layers
3. **Independence**: Each task should be independently completable and testable
4. **Ordering**: Identify dependencies and suggest an execution order
5. **Size**: Each task should take roughly 1-4 hours of focused work
6. **Acceptance Criteria**: Each task should have clear, testable criteria
Output format:
- Numbered list of tasks in dependency order
- For each task: title, description, acceptance criteria, estimated complexity (S/M/L)
- Mark tasks that can be parallelized
- Identify the critical path
"""
end
@impl true
def match?(input) do
input = String.downcase(input)
String.contains?(input, [
"break down",
"decompose",
"task list",
"implementation plan",
"steps to",
"plan this"
])
end
end