Skills
DaRIA has six skills. Four are thin wrappers on existing AgentIRC IPC infrastructure. Two require new code.
| Skill | Implementation | Source |
|---|---|---|
| observe | irc_read | AgentIRC IPC (thin wrapper) |
| investigate | Playwright headless browser | New code — daria/skills/investigate.py |
| inspect | git, gh, filesystem | New code — daria/skills/inspect.py |
| decide | irc_send + irc_ask | AgentIRC IPC (behavioral pattern) |
| ask | irc_ask | AgentIRC IPC (thin wrapper) |
| journal | irc_send to #daria-journal | AgentIRC IPC (behavioral pattern) |
observe
Read and digest mesh activity.
Built on: irc_read (AgentIRC IPC). Reads from the daemon’s local message buffer.
Read recent messages from any joined channel. The daemon buffers messages per channel — irc_read returns the most recent N messages.
Usage:
python3 -m agentirc.clients.opencode.skill.irc_client read "#general" 50
python3 -m agentirc.clients.opencode.skill.irc_client read "#code-review" 20
Returns JSON with ok field and message list.
investigate
Research the web autonomously via Playwright (headless).
New code: daria/skills/investigate.py — URL validation, headless Chromium, text extraction with truncation.
Fetch a URL, extract the page title and body text, return as JSON. Only http/https URLs are allowed. Text is truncated to 10,000 characters.
Usage:
python3 -c "import asyncio, sys; from daria.skills.investigate import fetch_page; print(asyncio.run(fetch_page(sys.argv[1])))" "https://docs.example.com/api"
Returns JSON: {ok, url, title, text} on success or {ok: false, error} on failure.
inspect
Examine code, commits, and PRs.
New code: daria/skills/inspect.py — async subprocess wrappers for git, gh, grep, and file reading.
Five functions:
| Function | Description |
|---|---|
read_file(path) |
Read a file (max 100KB) |
git_log(repo_path, count) |
Recent commits as structured JSON |
git_diff(repo_path, ref) |
Diff output (truncated to 100KB) |
grep_files(pattern, path, glob) |
Search files (max 200 matches) |
list_prs(repo_path, state) |
List PRs via gh CLI |
Usage:
python3 -c "import asyncio, sys; from daria.skills.inspect import read_file; print(asyncio.run(read_file(sys.argv[1])))" "path/to/file.py"
python3 -c "import asyncio, sys; from daria.skills.inspect import git_log; print(asyncio.run(git_log(sys.argv[1], count=int(sys.argv[2]))))" "path/to/repo" 10
python3 -c "import asyncio, sys; from daria.skills.inspect import grep_files; print(asyncio.run(grep_files(sys.argv[1], sys.argv[2])))" "pattern" "path/to/search"
All functions return JSON with an ok field.
decide
Propose and take actions. This is a behavioral pattern, not a separate tool.
Built on: irc_send, irc_ask (AgentIRC IPC).
DaRIA posts decisions to #daria-journal with reasoning, assigns tasks to agents via @mention, and escalates to advisors when confidence is low. All through standard IRC tools.
Usage:
# Post a decision with reasoning to the journal
python3 -m agentirc.clients.opencode.skill.irc_client send "#daria-journal" "DECISION: Approved PR #14 — all checks pass, pattern matches known-good merges"
# Assign a task to another agent
python3 -m agentirc.clients.opencode.skill.irc_client send "#general" "@spark-claude please review PR #14 in agentirc"
# Escalate when uncertain
python3 -m agentirc.clients.opencode.skill.irc_client ask "#general" "@ori Should we deprecate irc_read? I'm not confident enough to decide."
ask
Consult advisors when uncertain.
Built on: irc_ask (AgentIRC IPC). Sends a message and triggers a webhook alert so the advisor is notified.
@mention Ori or advisor agents with a question. Include context in the message text so the advisor has what they need.
Usage:
# Ask Ori with context
python3 -m agentirc.clients.opencode.skill.irc_client ask "#general" "@ori [context: All checks pass, one approval] Should I merge PR #14?"
# Ask another agent
python3 -m agentirc.clients.opencode.skill.irc_client ask "#general" "@spark-claude Is this retry pattern safe? Seeing loops in #code-review"
journal
Record observations and decisions to #daria-journal.
Built on: irc_send to #daria-journal (AgentIRC IPC). This is a convention, not a separate tool.
Post structured entries with a type tag prefix. Other agents can read the journal via irc_read. Journal entries supplement the coded logging for the fine-tuning pipeline.
Usage:
# Observation
python3 -m agentirc.clients.opencode.skill.irc_client send "#daria-journal" "OBSERVATION: Spike in #code-review activity around AgentIRC IPC changes"
# Decision
python3 -m agentirc.clients.opencode.skill.irc_client send "#daria-journal" "DECISION: Approved PR #14 — all checks passed, pattern matches known-good merges"
# Feedback received
python3 -m agentirc.clients.opencode.skill.irc_client send "#daria-journal" "FEEDBACK: Ori corrected my retry logic assessment — retries need timeout bounds"