Install
$ agentstack add skill-ezotoff-ez-omo-config-parallel-dev ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
parallel-dev
Should I Parallelize? Decision Framework
BEFORE spawning worktrees, evaluate:
MANDATORY Preconditions (ALL must be YES)
- Can the work be split into 2+ INDEPENDENT subtasks? (no shared state, no sequential dependencies)
- Will each subtask touch DIFFERENT files? (minimal overlap = minimal merge conflicts)
- Is the total effort > 30 minutes? (parallelization overhead: ~5 min setup + ~5 min merge per agent)
Risk Assessment (proceed if acceptable)
- If one agent fails, can others continue? (failure isolation)
- Can merge conflicts be resolved? (same-file changes = high conflict risk)
Decision Matrix
| Subtasks | File Overlap | Effort | Decision | |----------|--------------|--------|----------| | 1 | N/A | Any | ❌ NO — not parallelizable | | 2+ | None | 30min | ✅ YES — parallelize | | 2+ | Some | >30min | ⚠️ CAUTION — plan for conflicts | | 2+ | High | Any | ❌ NO — sequential is safer |
Examples
- ✅ "Implement auth + Implement payments" → Different modules, parallelize
- ✅ "Fix bug in API + Add tests for utils" → Different files, parallelize
- ❌ "Refactor X + Add feature using X" → Sequential dependency, sequential execution
- ❌ "Fix typo + Update README" | /
2) Inspect active worktree state files:
```bash
ls ~/.local/share/opencode/worktree-state//worktrees/
3) Count active entries:
grep -l '"status": *"active"' *.json | wc -l
4) Abort spawning when count >= 4.
Important Boundary
- Coordinator reads state under
~/.local/share/opencode/worktree-state//. - Coordinator does not create or initialize state files; hook scripts own state creation.
Phase 2: Spawning Agents in Worktrees
Tool Contract
Use:
worktree_create(branch, baseBranch?)
Critical behavior:
worktree_createreturns a message string (NOTsession_id).- The plugin opens a new tmux window named after the branch.
- That tmux window runs an independent OpenCode instance for the spawned worktree.
Port and Runtime Context
After spawning, read branch state:
~/.local/share/opencode/worktree-state//worktrees/.json
Extract runtime metadata (for dispatch instructions), including allocated port.
State Ownership
- Post-create hook (
.opencode/scripts/worktree-post-create.sh) creates state and starts Docker. - Coordinator must not recreate this logic.
Phase 3: Dispatching Work
Use one of two delivery mechanisms.
Option A: Task File (preferred)
- Before
worktree_create, write task instructions to:
~/.local/share/opencode/worktree-state//tasks/.md
- Post-create hook copies this to spawned worktree:
.opencode/current-task.md
- Spawned agent reads
.opencode/current-task.mdon startup.
Why preferred:
- Durable handoff and easy audit trail in
worktree-statetask artifacts.
Option B: tmux send-keys
After worktree_create, send instructions directly:
interactive_bash(tmux_command="send-keys -t '' Enter")
Use for quick or recovery dispatch when task file is unavailable.
Agent Instructions Template (mandatory guardrails)
You are working in worktree branch .
- NEVER switch to main branch
- NEVER modify files outside this worktree
- Your app is served at http://localhost:
- When done: commit all changes, then load merge-agent skill: /merge-worktree
Additional dispatch rule:
- Do not use
task()for worktree dispatch; it runs in the current session, not the spawned worktree.
Phase 4: Monitoring Progress
Status Polling
Monitor each branch state file in:
~/.local/share/opencode/worktree-state//worktrees/.json
Expected status flow:
active → merging → completed | failed
Timeout Enforcement
- Read
timeoutAtfrom state. - If current time >
timeoutAtwhile status is stillactive, initiate timeout cleanup path (Phase 6).
Tmux Visibility
Check window presence and activity:
interactive_bash(tmux_command="list-windows")
Phase 5: Merge Triggering
Preferred Path
Agents self-trigger merge by following the dispatch template:
/merge-worktree
Coordinator Fallback
If coordinator observes branch ready/completed-but-not-merged state, send merge command via tmux:
interactive_bash(tmux_command="send-keys -t '/merge-worktree ' Enter")
Merge Implementation
- Merge orchestration must use merge-agent skill (
load_skills=["merge-agent"]behavior in the merge worker context). - Coordinator should not duplicate merge-agent internals.
Phase 6: Failure Handling
Timeout
- Condition:
timeoutAtelapsed and status remainsactive. - Action: trigger worktree cleanup:
worktree_delete("timeout")
Failed Status
- Condition: state transitions to
failed. - Action: flag for human review and keep worktree for debugging unless explicit cleanup requested.
Cleanup Hooks
- Cleanup automatically invokes pre-delete hook (
.opencode/scripts/worktree-pre-delete.sh). - Coordinator should rely on hook side effects instead of re-implementing them.
Non-Negotiable Guardrails
- Never create custom state roots (do not use
.sisyphus/). - Never have coordinator write canonical state files in
worktrees/directly. - Never implement agent-to-agent messaging in this skill.
- Never implement custom tmux session management.
- Always use
~/.local/share/opencode/worktree-state//as the state authority.
Quick Operator Checklist
- Apply decision framework first.
- Enforce
MAX_PARALLEL=4. - Spawn with
worktree_createand treat return as message string. - Read
.jsonfor allocated port and runtime status. - Dispatch via task file (preferred) or send-keys.
- Monitor status/timeouts until
completedorfailed. - Ensure merge runs through merge-agent.
- Cleanup timeout branches and preserve failed branches for debug.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: EZotoff
- Source: EZotoff/ez-omo-config
- License: MIT
- Homepage: https://github.com/EZotoff/ez-omo-config
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.