name: 33god-33god-agent-factory description: Bootstrap new 33GOD ecosystem agents with standardized configuration. Use when creating new agents, spawning workers, or when the user says "spin up an agent", "create a new agent", "deploy a new worker", or needs a new agent for a specific pipeline role. Handles workspace creation, config injection, skill installation, provider mirroring, channel binding, and 33GOD ecosystem onboarding (GOD Docs, Plane, Bloodbank, memory).
Agent Factory
Standardized bootstrap for 33GOD ecosystem agents. Every agent ships ready to:
- Consume and produce Bloodbank events
- Read/write GOD Docs
- Track work on Plane boards
- Communicate with Cack (boss) and peer agents
- Use hindsight for long-term memory
- Authenticate against all configured providers
Quick Start
When the user requests a new agent, gather these parameters:
| Parameter | Required | Description |
|---|---|---|
id |
✅ | Agent ID (lowercase, no spaces, e.g. scout) |
name |
✅ | Display name (e.g. Scout) |
role |
✅ | One of: manager, exec, or IC |
purpose |
✅ | One-line mission statement |
personality |
❌ | Vibe/tone (defaults to "competent, concise, team-player") |
channel |
❌ | telegram (needs bot token) |
telegram_bot_token |
❌ | If channel=telegram, the BotFather token |
telegram_account_id |
❌ | Account ID for multi-bot setup (defaults to agent id) |
model |
❌ | Model override (defaults to ecosystem default) |
workspace_slug |
❌ | Workspace path slug (agent-based default comes from display name first token, e.g. Momo The Cat -> workspace-momo) |
reports_to |
❌ | Manager/owner for role charter (default: Cack) |
role_title |
❌ | Human-readable charter title (default derived from role) |
directives |
❌ | Per-agent directives (repeatable, merged into charter) |
skills |
❌ | Additional skills beyond the base set |
Bootstrap Procedure
1. Create Workspace
bash /home/delorenj/.openclaw/skills/33god-agent-factory/scripts/bootstrap.sh \
--id <id> \
--name <name> \
--role <role> \
--purpose "<purpose>" \
[--personality "<personality>"] \
[--model "<model>"] \
[--workspace-slug "<agent-workspace-slug>"] \
[--reports-to "<manager>"] \
[--role-title "<charter title>"] \
[--directive "<agent-specific directive>"]...
This creates ~/.openclaw/workspace-<id>/ with all template files populated.
2. Role Governance Is Auto-Synced
Bootstrap now calls scripts/role_governance.py automatically to:
- upsert this agent in
~/.openclaw/workspace/frameworks/agent-governance/AGENT_ROLE_MATRIX.json - apply inherited global prime directives to all managed
AGENTS.mdfiles - apply per-agent directives (when provided via
--directive)
You can re-run sync manually at any time:
python3 /home/delorenj/.openclaw/skills/33god-agent-factory/scripts/role_governance.py \
--governance-dir /home/delorenj/.openclaw/workspace/frameworks/agent-governance \
apply
3. Update Gateway Config
After running the bootstrap script, update ~/.openclaw/openclaw.json:
Add agent to agents.list:
{
"id": "<id>",
"name": "<name>",
"workspace": "/home/delorenj/.openclaw/workspace-<id>",
"identity": { "name": "<name>" }
}
If Telegram channel, add to channels.telegram.accounts:
"<account_id>": {
"name": "<name>",
"dmPolicy": "pairing",
"botToken": "<token>",
"groupPolicy": "allowlist",
"streamMode": "partial"
}
Add binding to bindings array:
{
"agentId": "<id>",
"match": {
"channel": "telegram",
"accountId": "<account_id>"
}
}
4. Restart Gateway
Use the gateway tool with action: "restart" to pick up the new agent.
5. Send Onboarding Briefing
After gateway restart, use sessions_send to the new agent's session (agent:<id>:main) with an onboarding message that includes:
- Their specific mission and current priorities
- Any immediate tasks from the Plane board
- Context about active projects they'll touch
6. Mandatory Process Hardening Check (Required)
Before considering bootstrap complete, verify the new agent understands and acknowledges:
- PR-only delivery (no direct merges to
main/master) - Ticket branch discipline (ticket id in branch name)
- Evidence-first status updates (
branch,last commit,git status,stash,open PRs) - Clean-main handoff after merges (
git checkout main && git pull --ff-only) - BMAD mandatory for coding repos (
npx bmad-method@alpha installwhen missing)
Use sessions_send and require a confirmation response in this structure:
- Repo hygiene checklist they will run every handoff
- PR policy acknowledgment
- BMAD enforcement acknowledgment
Yi Node Flavors (Role Types)
| Role | Memory | Can Delegate | Description |
|---|---|---|---|
manager |
✅ Persistent | ✅ Yes | Delegators only — coordinate, don't execute |
exec |
✅ Persistent | ✅ Yes | Delegator + worker hybrid |
ic |
✅ Persistent | ❌ No | Individual contributor with full context |
contractor |
❌ Ephemeral | ❌ No | Stateless worker, task-scoped |
Invariant: Delegator ⇒ persistent memory required.
Base Skills (auto-installed via symlink)
Every agent gets these skills symlinked from Cack's install:
33god-creating-and-working-with-projects33god-service-development33god-workflow-generatorgod-docsmanaging-tickets-and-tasks-in-planegithubecosystem-patternsinstalling-apps-tools-and-serviceshindsight
Template Files
The bootstrap script generates these from templates in references/:
AGENTS.md— Role-aware instructions + repo execution protocol (ticket branches, PR-only, evidence-first reporting, clean-main handoff, BMAD mandate)SOUL.md— Personality + ecosystem identityUSER.md— Jarad's info (static)IDENTITY.md— Agent identity cardTOOLS.md— Empty, agent fills as neededMEMORY.md— Pre-seeded with ecosystem contextHEARTBEAT.md— Empty (agent configures as needed)memory/directory created
Provider Auth
Providers are configured at the gateway level in agents.defaults, so all agents automatically inherit:
- anthropic, github-copilot, openai-codex, opencode, kimi-coding, google, google-antigravity, openrouter
No per-agent provider config needed — it's all in defaults.
Conventions
- Workspace:
~/.openclaw/workspace-<id>/ - Session key:
agent:<id>:main - Telegram account: matches agent id unless overridden
- All agents know Cack is the coordinator/boss
- All agents use
sessions_sendfor inter-agent comms - Plane workspace:
33god
Per-Agent Directive Updates (Post-Bootstrap)
Use this when you want to modify one agent's local directives later:
python3 /home/delorenj/.openclaw/skills/33god-agent-factory/scripts/role_governance.py \
--governance-dir /home/delorenj/.openclaw/workspace/frameworks/agent-governance \
upsert-and-apply \
--workspace /home/delorenj/.openclaw/workspace-<id> \
--agent "<name>" \
--role "<role title>" \
--reports-to "<manager>" \
--mission "<mission>" \
--directive "<local directive 1>" \
--directive "<local directive 2>"