Skip to main content

The Problem: AI Agents Working in Silos

Your AI agents create chaos:
  • Claude starts refactoring AuthController.php
  • Cursor simultaneously adds OAuth to AuthController.php
  • Merge conflict after 2 hours of work
  • No one knows who’s working on what
  • Features get implemented in wrong order
  • 3 hours lost per conflict
Real example:Developer used 3 AI assistants to build a feature. Each agent modified the same 5 files. Result: 12 merge conflicts, 4 hours wasted resolving them manually.

Status Workflow

Valid Status Transitions

ULPI Tasks enforces a state machine to prevent invalid task states:
When: Agent starts working on a taskExample:
Use case:
Why it matters:
  • Signals to other agents: “I’m working on this, don’t touch it”
  • Tracks actual start time for metrics
  • Prevents duplicate work
When: Work is done, needs reviewExample:
Use case:
Why it matters:
  • Separates “done coding” from “fully complete”
  • Allows for code review step
  • Tracks review cycle time
When: Review passed, task is doneExample:
Use case:
Why it matters:
  • Unblocks dependent tasks automatically
  • Finalizes metrics (completion time, actual hours)
  • Provides closure and visibility
When: Can’t continue due to external dependencyExample:
Use case:
Why it matters:
  • Prevents agents from waiting indefinitely
  • Makes blockers visible
  • Allows agent to work on other tasks
When: Review found issues, need reworkExample:
Use case:
Why it matters:
  • Clear signal: work isn’t done yet
  • Maintains review cycle integrity
  • Tracks rework time separately
When: Task is no longer neededExample:
Use case:
Why it matters:
  • Prevents incomplete tasks from cluttering the backlog
  • Preserves work history (soft delete)
  • Frees up resources/quota

Task Dependencies

Prevent work on tasks that will be blocked or cause conflicts.

Dependency Types

Definition: Task A blocks Task B = Task B cannot be completed until Task A is doneExample:
Real-world scenario:
Enforcement:
Auto-unblocking: When you complete BACKEND-051, ULPI automatically changes BACKEND-052 status from blockedtodo (ready to start)

Creating Dependencies

Command:
Programmatic (MCP):
Result:
When: Dependency is no longer neededCommand:
Result:
See what’s blocking a task:
See what a task blocks:
ULPI automatically prevents circular dependencies:
Why it matters:
  • Prevents deadlock situations
  • Ensures tasks can actually be completed
  • Maintains workflow integrity

Multi-Agent Coordination Patterns

Pattern 1: Feature Decomposition

Break a large feature into sequenced tasks for multiple agents.
Feature: Implement complete OAuth2 authenticationTeam:
  • Claude Desktop (backend specialist)
  • Cursor (frontend specialist)
  • Windsurf (testing specialist)
Timeline: 3 days

Pattern 2: Bug Triage Workflow

Coordinate bug fixes across multiple agents with priority handling.
Team:
  • Claude (backend bugs)
  • Cursor (frontend bugs)
  • Windsurf (testing/verification)
Incoming bugs: 15 bugs reported in productionGoal: Triage and fix all bugs within 48 hours

Pattern 3: Parallel Feature Development

Multiple agents work on independent features simultaneously.
Goal: Ship 3 features in 1 weekFeatures:
  1. User roles & permissions (backend + frontend)
  2. Email notification system (backend only)
  3. Dashboard redesign (frontend only)
Team:
  • Claude (backend)
  • Cursor (frontend)
  • Windsurf (QA)

Advanced Orchestration Techniques

Use case: Group related tasks under a parent epicExample:
Track epic progress:
Pro tip: Use task type epic and store sub-task references in metadata.subtasks array
Let AI agents infer and create dependencies automatically.Example:
Why it works:
  • AI understands natural order (DB → API → UI → Tests)
  • Automatically creates blocks dependencies
  • Prevents manual dependency management
Balance workload across multiple agents.Query:
Auto-assignment by capacity:
Prioritize tasks by deadline.Example:
Auto-prioritization:
Use semantic search to find related work.Example:
Why it matters:
  • Discover tasks you didn’t know existed
  • Avoid duplicate work
  • Learn from completed tasks

Best Practices

1. Break Large Features Into Small Tasks

Bad:
Good:
Why: Smaller tasks = better progress tracking, easier parallelization

2. Use Descriptive Task Titles

Bad:
Good:
Why: Clear titles make search and discovery effective

3. Set Dependencies Early

Best practice:
  • Create all tasks for a feature at once
  • Set dependencies immediately
  • Let AI agents suggest dependency order
Why: Prevents agents from starting work that will be blocked

4. Use Comments for Context

Add context that helps other agents:
Why: Future agents can quickly understand the task

5. Tag Tasks for Organization

Example:
Why: Makes filtering and reporting easier

6. Track Estimates vs. Actuals

Set estimates:
Compare with actual:
Why: Improve future estimates, identify bottlenecks

What’s Next?


Need Help?

Getting Started

Quick setup guide

Support

Email us anytime

Community

Join our Discord