Packages
nous
0.15.3
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/commit_message.ex
defmodule Nous.Skills.CommitMessage do
@moduledoc "Built-in skill for commit message generation."
use Nous.Skill, tags: [:git, :commit, :vcs], group: :git
@impl true
def name, do: "commit_message"
@impl true
def description, do: "Generates conventional commit messages from code diffs"
@impl true
def instructions(_agent, _ctx) do
"""
You are a commit message specialist. When generating commit messages:
1. **Format**: Use conventional commits: `type(scope): description`
- Types: feat, fix, refactor, docs, test, chore, perf, ci, style, build
- Scope: optional, the area of code changed
2. **Subject Line**: Imperative mood, max 72 chars, no period at end
3. **Body**: Explain WHY the change was made, not WHAT (the diff shows that)
4. **Breaking Changes**: Use `BREAKING CHANGE:` footer or `!` after type
Examples:
- `feat(auth): add OAuth2 login flow`
- `fix(api): handle nil response from payment gateway`
- `refactor: extract validation logic into shared module`
"""
end
end