.claude/skills/juliaz-agent-builder/SKILL.md
Scaffolding and creating new agents or sub-agents within the juliaz_agents ecosystem. Trigger whenever Raphael wants to create a new agent, add a new sub-agent, define a new agent's personality/identity, set up agent heartbeats, or modify an existing agent's SOUL/IDENTITY/TOOLS/AGENTS files. Also trigger when discussing agent conventions, the SOUL.md pattern, or how agents should be structured in this project. If someone says 'new agent', 'create an agent', 'agent personality', 'SOUL.md', or 'add a bot' — this is the skill to use.
npx skillsauth add abzhaw/juliaz_agents juliaz-agent-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill encodes the conventions, patterns, and best practices for building agents in the juliaz_agents multi-agent system.
Read the juliaz-system skill first if you haven't already — it provides the full architecture map. Every new agent needs to fit into the existing ecosystem without breaking message flow or creating orphaned components.
Ask these questions before writing any files:
The juliaz_agents repository is organized into three systems. Where a new agent goes depends on its purpose:
| System | Directory | Purpose | Examples |
|--------|-----------|---------|----------|
| Product | julia/ | Julia's runtime components (frontend, backend, bridge, orchestrator, cowork-mcp, openclaw) | julia/orchestrator/, julia/bridge/ |
| Meta | meta/agents/ | Ambient agents that monitor, maintain, and improve the system | meta/agents/health-checker/, meta/agents/security-agent/ |
| Thesis | thesis/agents/ | Agents related to thesis research | thesis/agents/thesis-agent/ |
Each agent gets its own directory under the appropriate system:
meta/agents/agent-name/ ← for ambient/meta agents
julia/agent-name/ ← for product agents
thesis/agents/agent-name/ ← for thesis agents
├── SOUL.md ← REQUIRED: Core identity, values, personality, boundaries
├── IDENTITY.md ← Name, creature type, vibe descriptor, emoji
├── TOOLS.md ← Available tools, environment config, API access
├── AGENTS.md ← Behavioral playbook: how to act, memory patterns, group rules
├── HEARTBEAT.md ← Scheduling cadence, health check logic, reporting
├── HEURISTICS.md ← Learned rules from past incidents (grows over time)
├── MEMORY.md ← Persistent context that survives session boundaries
├── USER.md ← Info about Raphael (user context)
└── src/ ← Source code (if agent has runtime logic)
└── index.ts ← Entry point
Not every file is needed for every agent. Here's the minimum:
| Agent Type | Required Files | |-----------|----------------| | Ambient (scheduled) | SOUL.md, HEARTBEAT.md | | Reactive (message-driven) | SOUL.md, IDENTITY.md, TOOLS.md | | Full agent with memory | All of the above + MEMORY.md + AGENTS.md |
The SOUL.md is the most important file. It defines who the agent IS. Study these existing examples:
# Core Identity
You are [name] — [one-line description of role].
# Values
- [3-5 core values expressed as behaviors, not abstractions]
# Boundaries
- [What you NEVER do]
- [What requires human approval]
# Operating Principles
- [How you make decisions]
- [What you prioritize]
# Soul
[Philosophy of how the agent approaches its work]
# Core Traits
- Genuinely helpful
- Resourceful
- Competent
- Earns trust through action
# Relationship to System
[How this agent relates to other agents and to Raphael]
Short and structured. Follow this template:
# Identity
- **Name**: [agent_name]
- **Creature**: [what kind of agent — e.g., "Ambient research agent", "Communication gateway"]
- **Vibe**: [2-3 adjectives — e.g., "calm, observant, curious"]
- **Emoji**: [single emoji representing the agent]
- **Created**: [date]
- **Creator**: Raphael + Antigravity
Ambient agents need scheduled execution. The pattern in juliaz_agents uses macOS LaunchAgent:
# Heartbeat
## Schedule
- **Frequency**: Every [N] hours
- **Method**: macOS LaunchAgent (launchctl)
- **Plist**: ~/Library/LaunchAgents/com.juliaz.[agent-name].plist
## Health Check
1. [What the agent checks on each run]
2. [What triggers an alert]
3. [How it reports — e.g., Telegram message, email, backend log]
## Reporting
- **Normal**: [what happens when everything is fine]
- **Alert**: [what happens when something needs attention]
Document what the agent can access:
# Tools
## Available
- [tool_name]: [what it does]
## Environment
- API Keys: [which env vars needed]
- Ports: [what ports it uses]
- Dependencies: [npm packages, CLI tools]
## Restrictions
- [What this agent must NOT access]
The behavioral playbook — how the agent acts in different situations:
# Agent Behavior
## Mission
[One paragraph: what this agent exists to accomplish]
## Decision Tree
1. When [situation A] → [action]
2. When [situation B] → [action]
3. When unsure → [default behavior]
## Memory Patterns
- [What to remember across sessions]
- [What to forget/discard]
## Interaction with Other Agents
- [How this agent communicates with bridge/orchestrator/OpenClaw]
http://localhost:3001/mcptelegram_get_pending_messages and telegram_send_reply toolsecosystem.config.js and ecosystem.dev.config.js)GET /healthAdd entry to both PM2 config files:
{
name: 'agent-name',
script: 'npm',
args: 'run dev', // or 'run start' for production
cwd: './meta/agents/agent-name',
env: {
NODE_ENV: 'development',
// ... agent-specific env vars
}
}
Create plist at ~/Library/LaunchAgents/com.juliaz.[name].plist with:
StartInterval for periodic executionStandardOutPath and StandardErrorPath for loggingWorkingDirectory pointing to the agent's folderBefore considering an agent "done":
src/index.tsmeta/docs/agent_cards/ describing the agent for humansmeta/docs/agent_system_overview.mddevelopment
Fortschrittsverfolgung der Masterarbeit. Wortanzahl pro Kapitel, Fertigstellungsgrad, fehlende Elemente, Deadlines. Haelt den Ueberblick.
development
Kapitelarchitektur und Gliederung der Masterarbeit. Verwaltet die Struktur, schlaegt vor wo Inhalte hingehoeren, validiert den logischen Fluss zwischen Kapiteln.
tools
Konvertiert Protokolleinträge und Session-Logs in thesis-fähiges deutsches Narrativ. Transformiert Entwicklungsdokumentation in akademische Prosa.
research
Sucht und analysiert akademische Literatur. Findet relevante Papers, erstellt strukturierte Zusammenfassungen. Zitiert NIEMALS — schlaegt nur vor.