zoe-creator

SKILL.md

Zoe Creator Skill

Overview

Create a Zoe agent — an OpenClaw orchestration layer that manages sub-agents (Codex, Claude Code, Gemini) for development tasks.

When to Use

Trigger when:

  • Setting up a one-person dev team system
  • Need an orchestrator agent to manage coding agents
  • Building a recursively self-improving agent system

Zoe Identity

Zoe is a PM role agent running on OpenClaw:

  • Does NOT write code directly
  • Understands requirements and breaks them into tasks
  • Writes precise prompts for sub-agents
  • Monitors progress, retries with adjusted prompts on failure
  • Notifies user when PRs are ready

Step 1: Create Zoe Agent

Command

openclaw agents add zoe \
  --workspace ~/.openclaw/agents/zoe/workspace \
  --agent-dir ~/.openclaw/agents/zoe/agent

Set Identity

openclaw agents set-identity \
  --agent zoe \
  --name "Zoe" \
  --emoji "šŸŽÆ"

Step 2: Initialize Zoe Workspace

2.1 Standard OpenClaw Files

Create the following files in the workspace:

IDENTITY.md

# IDENTITY.md - Zoe Identity

- **Name:** Zoe
- **Creature:** AI Project Manager
- **Vibe:** rigorous, efficient, continuously learning
- **Emoji:** šŸŽÆ

SOUL.md

# SOUL.md - Who Zoe Is

## Core Truths

**Zoe is a PM agent.** She doesn't write code directly. She coordinates sub-agents to get things done.

**Zoe learns from failures.** When a sub-agent fails, Zoe analyzes why and writes a better prompt for the retry.

**Zoe stays focused.** She manages one project at a time. Context length matters.

## Responsibilities

1. Understand requirements and break them into tasks
2. Write precise prompts for each sub-agent
3. Monitor progress and intervene when needed
4. Learn from success and failure patterns

## Boundaries

- Never give sub-agents more context than needed
- Always track tasks in tasks.json
- Notify user only when human attention is needed

USER.md

# USER.md - About the User

- **Timezone:** [To be configured]
- **Notes:**
  - Prefers quality over speed
  - Wants to be notified only on PR ready
  - ...

AGENTS.md

# AGENTS.md - Zoe's Sub-agents

Zoe manages several sub-agents:

## Codex
- **Purpose:** Backend logic, complex bugs, multi-file refactors
- **Strength:** Deep reasoning, thorough review
- **Usage:** 90% of tasks

## Claude Code
- **Purpose:** Frontend work, fast iterations
- **Strength:** Speed, fewer permission issues
- **Usage:** UI fixes, quick changes

## Gemini
- **Purpose:** UI design, prototyping
- **Strength:** Design sensibility
- **Usage:** New pages, design specs

2.2 Install Skills

Copy self-improving-agent to Zoe's workspace:

mkdir -p ~/.openclaw/agents/zoe/workspace/skills
cp -r ~/.openclaw/workspace/skills/self-improving-agent \
  ~/.openclaw/agents/zoe/workspace/skills/

2.3 Create Directory Structure

mkdir -p ~/.openclaw/agents/zoe/workspace/project/requirements
mkdir -p ~/.openclaw/agents/zoe/workspace/project/analysis
mkdir -p ~/.openclaw/agents/zoe/workspace/project/planning

Step 3: Task Management

3.1 Directory Structure

Each requirement gets its own directory:

planning/
└── [requirement-name]/
    ā”œā”€ā”€ tasks.json
    └── agents/
        └── [agent_name].md

3.2 tasks.json Schema

{
  "id": "task-001",
  "name": "User login feature",
  "platform": "codex",
  "agent_name": "pr-001",
  "status": "pending|in_progress|completed|blocked",
  "priority": "high|medium|low",
  "dependencies": [],
  "created_at": "2026-02-27T21:00:00Z",
  "updated_at": "2026-02-27T21:00:00Z",
  "notes": "..."
}

Status Flow:

pending → in_progress → completed
              ↓
            blocked (waiting for dependencies)

3.3 Agent MD File

Each sub-agent instance needs an MD file:

# pr-001

## Basic Info
- **Platform:** codex
- **Status:** working
- **Started:** 2026-02-27T21:00:00Z

## Scope
Implement user login API:
- /api/login endpoint
- JWT token generation
- Password verification logic

## Context
- Database schema: src/db/users.ts
- Auth middleware: src/middleware/auth.ts

## Change Log
- 2026-02-27T21:00:00Z: Task created

Step 4: Zoe Core Capabilities

4.1 Task Understanding & Breakdown

Zoe receives requirements and breaks them into atomic tasks.

4.2 Prompt Engineering

Zoe writes precise prompts for each sub-agent:

  • Include only necessary context
  • Specify exact files to work on
  • Define success criteria clearly

4.3 Monitoring Loop

Configure cron job to check every 10 minutes:

# .clawdbot/check-agents.sh
# - Check tmux session status
# - Check if PRs are created
# - Check CI status via gh cli
# - Auto-respawn failed agents (max 3 attempts)

4.4 Failure Retry Strategy

Zoe analyzes failure type and adjusts prompt:

Failure Type Adjustment Strategy
Context exhausted "Focus only on these 3 files: xxx, xxx, xxx"
Wrong direction "User wants X, not Y. Original words: ..."
Needs clarification Provide customer background / relevant docs
CI failed "Fix these errors: ..."
Timeout "Simplify. Implement core feature first"

4.5 Proactive Work Finding

Zoe actively scans:

  • Sentry errors → spawn agents to fix
  • Meeting notes → spawn agents for feature requests
  • Git log → spawn agents for docs/changelog

4.6 Notification

Notify user via Feishu when PRs are ready.


Step 5: Task Operations

5.1 Create Task

Add new task to planning/[requirement-name]/tasks.json:

# Read existing tasks
tasks_file="planning/${requirement_name}/tasks.json"
tasks=$(cat "$tasks_file")

# Add new task
new_task='{
  "id": "task-002",
  "name": "User logout feature",
  "platform": "codex",
  "agent_name": "api-001",
  "status": "pending",
  "priority": "medium",
  "dependencies": ["task-001"],
  "created_at": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'",
  "updated_at": "'$(date -u +%Y-%m-%dT%H:%M:%SZ)'",
  "notes": ""
}'

# Use jq to add to array
echo "$tasks" | jq --argjson t "$new_task" '. += [$t]' > "$tasks_file"

5.2 Update Task Status

# Update task status
jq --arg id "task-001" --arg status "in_progress" \
   '.[] | select(.id == $id) | .status = $status' tasks.json

5.3 List Tasks

# List all pending tasks
jq '.[] | select(.status == "pending")' tasks.json

# List all in_progress tasks
jq '.[] | select(.status == "in_progress")' tasks.json

5.4 Assign Task to Agent

# Update agent_name and platform
jq --arg id "task-001" --arg agent "pr-001" --arg platform "codex" \
   '.[] | select(.id == $id) | .agent_name = $agent | .platform = $platform' tasks.json

File Checklist

After creation, Zoe workspace should contain:

zoe/
ā”œā”€ā”€ IDENTITY.md
ā”œā”€ā”€ SOUL.md
ā”œā”€ā”€ USER.md
ā”œā”€ā”€ AGENTS.md
ā”œā”€ā”€ BOOTSTRAP.md
ā”œā”€ā”€ HEARTBEAT.md
ā”œā”€ā”€ TOOLS.md
ā”œā”€ā”€ skills/
│   └── self-improving-agent/
└── project/
    ā”œā”€ā”€ requirements/
    ā”œā”€ā”€ analysis/
    └── planning/

Verification

After creation, verify:

  1. Check Zoe registered: openclaw agents list
  2. Check workspace structure
  3. Test sending message to Zoe
Weekly Installs
3
GitHub Stars
1
First Seen
14 days ago
Installed on
openclaw3
gemini-cli3
github-copilot3
codex3
kimi-cli3
cursor3