- SOUL.md: only personality/voice guidance (no routing logic) - SKILL.md: definitive routing behavior + delegation process - Add context passing via temp file for long tasks - Add error handling table with user-friendly messages This aligns with Hermes docs: SOUL.md = identity, SKILL.md = behavior
4.0 KiB
4.0 KiB
name, description, license, compatibility, metadata
| name | description | license | compatibility | metadata | ||||
|---|---|---|---|---|---|---|---|---|
| kugetsu-chat | Chat Agent skill for kugetsu Phase 3. Handles Telegram routing, PM delegation, and notification coordination. | MIT | Requires Hermes agent with Telegram configured, kugetsu CLI, opencode sessions. |
|
kugetsu-chat - Chat Agent Skill
This skill defines how Hermes routes messages and delegates to the PM Agent.
Overview
The Chat Agent receives Telegram messages, classifies intent, and routes to the appropriate handler.
Intent Classification
When you receive a message, classify its intent:
| Intent | Examples | Action |
|---|---|---|
| Small talk | "hi", "thanks", "how are you", "hello" | Respond directly |
| Task request | "fix issue #5", "create test for #14", "implement feature" | Route to PM Agent |
| Status query | "status?", "what's on #7?", "progress?" | Route to PM Agent |
| Mode command | "pm notify", "pm silent", "work silently" | Route to PM Agent |
| Clarification | "which project?", "what repo?" | Ask user for clarification |
Delegation Process
When you need to delegate to the PM Agent:
Step 1: Get PM Agent Session
PM_SESSION=$(cat ~/.kugetsu/index.json | python3 -c "import sys,json; print(json.load(open('$HOME/.kugetsu/index.json')).get('pm_agent', ''))")
Step 2: Check if kugetsu is initialized
kugetsu status check
If this fails, inform the user: "kugetsu is not initialized. Please run kugetsu init first."
Step 3: Delegate to PM Agent
Use terminal() to continue the PM Agent session:
terminal(command="opencode run --continue --session $PM_SESSION 'User request: <message>'", timeout=120)
Step 4: Relay Response
Return the PM Agent's response to the user via Telegram.
Delegation via kugetsu-helpers
Alternatively, use the kugetsu-helpers script:
terminal(command="kugetsu-delegate '<task message>'", timeout=120)
Or check status first:
terminal(command="kugetsu-check-status", timeout=10)
Context Passing
If the task message is too long for terminal parameters, write to a temp file:
# Write context to file
echo "Task: fix issue #5
Repo: github.com/shoko/kugetsu
User: Please fix the authentication bug
" > /tmp/task-context.txt
# Pass file path to PM
terminal(command="opencode run --continue --session $PM_SESSION --workdir /tmp \"Read /tmp/task-context.txt and execute\"", timeout=120)
Error Handling
| Error | User Message | Resolution |
|---|---|---|
| kugetsu not initialized | "kugetsu is not set up yet. Please run kugetsu init first." |
User runs kugetsu init |
| PM agent missing | "PM agent not found. Run kugetsu init to create it." |
User runs kugetsu init |
| Session expired | "The PM agent session may have expired. Please run kugetsu destroy --pm-agent -y && kugetsu init to reinitialize." |
User reinitializes |
PM Agent Modes
When routing to PM Agent, you can include mode preferences:
- "pm notify" → PM sends notifications on completion (default)
- "pm silent" → PM works quietly, no notifications
Response Formatting
When relaying PM Agent responses:
- Keep messages concise (Telegram-friendly)
- Don't add your own commentary unless helpful
- Format links and code blocks clearly
When NOT to Route
Do NOT route to PM Agent for:
- Greetings and casual conversation
- Questions about how the system works
- Help with Telegram itself
- Simple questions you can answer directly
Quick Reference
# Check if kugetsu is ready
cat ~/.kugetsu/index.json | python3 -c "import sys,json; d=json.load(sys.stdin); print('OK' if d.get('pm_agent') else 'NOT INITIALIZED')"
# Get PM session ID
python3 -c "import json; print(json.load(open('$HOME/.kugetsu/index.json')).get('pm_agent', ''))"
Related Skills
kugetsu-pm- PM Agent behavior and coordinationkugetsu-helpers- Shell functions for kugetsu interaction
Files
../kugetsu-helpers/scripts/kugetsu-helpers- Helper script with delegation functions