Installs into .claude/skills of the current project.
Are you the author of 2539 Worker B83e380d?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tools-only-2539-worker-b83e380d)
# ZERG Worker Execution (Core)
You are a ZERG Worker executing tasks in parallel with other workers.
## Environment
```bash
WORKER_ID=${ZERG_WORKER_ID:-0}
FEATURE=${ZERG_FEATURE:-unknown}
BRANCH=${ZERG_BRANCH:-main}
TASK_LIST=${CLAUDE_CODE_TASK_LIST_ID:-$FEATURE}
```
## Your Role
You are Worker **$WORKER_ID** working on feature **$FEATURE**.
Execute assigned tasks, commit completed work, coordinate via the shared task list.
## Execution Protocol
### Step 1: Load Context
```bash
cat .gsd/specs/$FEATURE/requirements.md
cat .gsd/specs/$FEATURE/design.md
cat .gsd/specs/$FEATURE/task-graph.json
cat .gsd/specs/$FEATURE/worker-assignments.json | jq ".workers[$WORKER_ID]"
```
### Step 2: Identify Your Tasks
From worker-assignments.json, find tasks assigned to you at each level.
### Step 3: Execute Task Loop
```
CURRENT_LEVEL = 1
WHILE CURRENT_LEVEL <= MAX_LEVEL:
MY_TASKS = tasks assigned to me at CURRENT_LEVEL
FOR each TASK in MY_TASKS:
# Check dependencies are completed
CALL execute_task(TASK)
WAIT until all tasks at CURRENT_LEVEL are complete (all workers)
git pull origin zerg/FEATURE/staging --rebase
CURRENT_LEVEL += 1
END WHILE
```
### Step 4: Task Execution
#### 4.1 Load Task Details
```bash
TASK_ID="TASK-001"
TASK=$(cat .gsd/specs/$FEATURE/task-graph.json | jq ".tasks[] | select(.id == \"$TASK_ID\")")
TITLE=$(echo $TASK | jq -r '.title')
FILES_CREATE=$(echo $TASK | jq -r '.files.create[]' 2>/dev/null)
FILES_MODIFY=$(echo $TASK | jq -r '.files.modify[]' 2>/dev/null)
FILES_READ=$(echo $TASK | jq -r '.files.read[]' 2>/dev/null)
VERIFICATION=$(echo $TASK | jq -r '.verification.command')
# Load steps array (if present for bite-sized planning)
HAS_STEPS=$(echo $TASK | jq -e '.steps | length > 0' 2>/dev/null && echo "true" || echo "false")
STEPS=$(echo $TASK | jq -r '.steps // []')
TOTAL_STEPS=$(echo $STEPS | jq 'length')
```
#### 4.1.1 Claim Task in Claude Task System
Before starting work, claim the task:
Call **TaskUpdate**:
- taskId: (Claude Task ID for this ZERG task — find via **TaskList**, match subject prefix `[L{level}] {title}`)
- status: "in_progress"
- activeForm: "Worker {WORKER_ID} executing {title}"
This signals to other workers and the orchestrator that this task is actively being worked on.
#### 4.2 Step-Based Execution (Bite-Sized Planning)
**IMPORTANT**: Tasks may have an optional `steps` array. If present, execute steps in **STRICT ORDER**.
**Step Actions** (TDD sequence):
1. `write_test` - Create test file (red phase)
2. `verify_fail` - Verify test fails (`verify: exit_code_nonzero`)
3. `implement` - Write implementation code
4. `verify_pass` - Verify test passes (`verify: exit_code`)
5. `format` - Run formatter
6. `commit` - Commit changes
**Exit Code Verification per Step**:
| Verify Mode | Expected | Description |
|-------------|----------|-------------|
| `exit_code` | 0 | Must succeed |
| `exit_code_nonzero` | non-0 | Must fail (TDD red phase) |
| `none` | any | No verification |
**Heartbeat Updates**: Update heartbeat JSON BEFORE and AFTER each step:
```json
{"current_step": 3, "total_steps": 6, "step_action": "implement", "step_status": "executing"}
```
**On Step Failure**: STOP immediately. Retry up to 3 times. Do NOT skip steps.
See `worker.core.md` for detailed step execution protocol (sections 4.2.1-4.2.6).
#### 4.3 Classic Mode (No Steps)
For tasks without steps:
- Read files this task depends on (`files.read`)
- Create files listed in `files.create`, modify files in `files.modify`
- Follow the design document exactly, match existing patterns
- No TODOs, no placeholders, complete and working code
#### 4.4 Verify Task
```bash
eval "$VERIFICATION"
if [ $? -eq 0 ]; then echo "Verification passed"; else echo "Verification failed"; fi
```
#### 4.5 Commit on Success
```bash
git add $FILES_CREATE $FILES_MODIFY
git commit -m "feat($FEATURE): $TITLE
Task-ID: $TASK_ID
Worker: $WORKER_ID
Verified: $VERIFICATION
Level: $LEVEL
"
```
#### 4.6 Update Claude Task Status
After successful verification and commit:
Call **TaskUpdate**:
- taskId: (Claude Task ID for this ZERG task)
- status: "completed"
If task failed after all retries:
Call **TaskUpdate**:
- taskId: (Claude Task ID)
- status: "in_progress"
- description: Append "BLOCKED: {error_message} after {retry_count} retries"
If exiting due to checkpoint (context limit):
Call **TaskUpdate**:
- taskId: (Claude Task ID for current in-progress task)
- status: "in_progress"
- description: Append "CHECKPOINT: {percentage}% complete. Next action: {next_step}"
#### 4.7 Handle Failure
If verification fails, retry up to 3 times with different approaches. After 3 failures, mark task as blocked and move on. See `worker.details.md` for retry logic.
### Step 5: Context Management
Monitor context usage. At **70% threshold**, commit WIP, log handoff state, and exit cleanly (exit code 2). The orchestrator will restart a fresh instance. See `worker.details.md` for WIP commit format.
### Step 6: Level Completion
After completing all tasks at a level, signal completion and wait for orchestrator merge. Then pull merged result and proceed to next level.
## Completion
When all levels are complete, display completion summary and verify via **TaskList**:
Call **TaskList** to retrieve all tasks. For each task assigned to this worker, confirm status is "completed". If any assigned task is not completed, log a warning with the task subject and current status.
## Help
When `--help` is passed in `$ARGUMENTS`, display usage and exit:
```
/zerg:worker — Execute assigned ZERG tasks in parallel with other workers.
Flags:
WORKER_ID Set via ZERG_WORKER_ID env var
FEATURE Set via ZERG_FEATURE env var
BRANCH Set via ZERG_BRANCH env var
--help Show this help message
```
<!-- SPLIT_REF: details in worker.details.md -->