Skip to content
Development
Skill

/loop-planner

Evaluate-Loop Step 1: PLAN. Use this agent when starting a new track or feature to create a detailed execution plan. Reads spec.md, loads project context, and produces a phased plan.md with specific tasks, acceptance criteria, and dependencies. Triggered by: 'plan feature',

From plugin
orchestrator-supaconductor
38242 skills15 agents38 commands1 hook

Claude Code

$ npx -y skills add Ibrahim-3d/orchestrator-supaconductor --skill loop-planner --agent claude-code

SKILL.md

loop-planner.SKILL.md
name: loop-planner
description: "Evaluate-Loop Step 1: PLAN. Use this agent when starting a new track or feature to create a detailed execution plan. Reads spec.md, loads project context, and produces a phased plan.md with specific tasks, acceptance criteria, and dependencies. Triggered by: 'plan feature', 'create plan', 'start track', '/conductor implement' (planning phase)."

Loop Planner Agent — Step 1: PLAN

Creates detailed, scoped execution plans for tracks. This is Step 1 of the Evaluate-Loop.

Inputs Required

1. Track `spec.md` — what needs to be built 2. `conductor/tracks.md` — what's already been done (to avoid overlap) 3. Track `plan.md` (if exists) — check for prior progress

Workflow

1. Load Context

read_file in order: 1. `conductor/tracks.md` — completed tracks and their deliverables 2. Track's `spec.md` — requirements for this track 3. Track's `plan.md` (if exists) — check what's already `[x]` done 4. `conductor/product.md` — product scope reference 5. `conductor/tech-stack.md` — technical constraints

2. Identify Scope Boundaries

Before writing any plan:

  • List what `spec.md` asks for (deliverables)
  • List what's already done in other tracks (from `tracks.md`)
  • Identify overlap — anything in spec that was already delivered elsewhere
  • Flag overlap items as "SKIP — already done in [TRACK-ID]"

3. Create Phased Plan with DAG

write_file `plan.md` with this structure (now includes dependency DAG for parallel execution):

# [Track Name] — Execution Plan

## Context
- **Track**: [ID]
- **Spec**: [one-line summary]
- **Dependencies**: [list prerequisite tracks]
- **Overlap Check**: [tracks checked, conflicts found/none]
- **Execution Mode**: PARALLEL | SEQUENTIAL

## Dependency Graph

<!-- YAML DAG for parallel execution -->
```yaml
dag:
  nodes:
    - id: "1.1"
      name: "Task name"
      type: "code"  # code | ui | integration | test | docs | config
      files: ["src/path/to/file.ts"]
      depends_on: []
      estimated_duration: "30m"
      phase: 1
    - id: "1.2"
      name: "Another task"
      type: "code"
      files: ["src/another/file.ts"]
      depends_on: []
      phase: 1
    - id: "1.3"
      name: "Depends on 1.1 and 1.2"
      type: "code"
      files: ["src/path/to/file.ts"]
      depends_on: ["1.1", "1.2"]
      phase: 1

  parallel_groups:
    - id: "pg-1"
      tasks: ["1.1", "1.2"]
      conflict_free: true
    - id: "pg-2"
      tasks: ["1.3", "1.4"]
      conflict_free: false
      shared_resources: ["src/path/to/file.ts"]
      coordination_strategy: "file_lock"

Phase 1: [Phase Name]

Tasks

  • [ ] Task 1.1: [Specific action] <!-- deps: none, parallel: pg-1 -->
  • **Type**: code
  • **Acceptance**: [How to verify this is done]
  • **Files**: [Expected files to create/modify]
  • [ ] Task 1.2: [Specific action] <!-- deps: none, parallel: pg-1 -->
  • **Type**: code
  • **Acceptance**: [How to verify]
  • **Files**: [Expected files]
  • [ ] Task 1.3: [Depends on above] <!-- deps: 1.1, 1.2 -->
  • **Type**: code
  • **Acceptance**: [How to verify]
  • **Files**: [Expected files]

Phase 2: [Phase Name]

...

Discovered Work

<!-- Add items here during execution if scope expansion is needed -->


### 3.1 DAG Generation Algorithm

When creating the plan, build the dependency graph:

```python
def generate_dag(tasks: list) -> dict:
    """
    Generate DAG from task list.

    1. Create nodes for each task
    2. Analyze dependencies (explicit + file-based)
    3. Identify parallel groups (tasks at same level with no conflicts)
    4. Detect shared resources
    """

    nodes = []
    for task in tasks:
        nodes.append({
            "id": task['id'],
            "name": task['name'],
            "type": determine_task_type(task),
            "files": task.get('files', []),
            "depends_on": task.get('depends_on', []),
            "estimated_duration": estimate_duration(task),
            "phase": task['phase']
        })

    # Build adjacency list
    dependents = defaultdict(list)
    for node in nodes:
        for dep in node['depends_on']:
            dependents[dep].append(node['id'])

    # Compute topological levels
    levels = compute_topological_levels(nodes)

    # Group tasks by level for parallel execution
    parallel_groups = []
    for level_num, level_tasks in enumerate(levels):
        if len(level_tasks) >= 2:
            # Analyze file conflicts
            file_usage = defaultdict(list)
            for task_id in level_tasks:
                task = next(n for n in nodes if n['id'] == task_id)
                for f in task.get('files', []):
                    file_usage[f].append(task_id)

            # Find conflict-free groups
            shared_files = {f: tasks for f, tasks in file_usage.items() if len(tasks) > 1}

            if not shared_files:
                parallel_groups.append({
                    "id": f"pg-{level_num + 1}",
                    "tasks": level_tasks,
                    "conflict_free": True
                })
            else:
                parallel_groups.append({
                    "id": f"pg-{level_num + 1}",
                    "tasks": level_tasks,
                    "conflict_free": False,
                    "shared_resources": list(shared_files.keys()),
                    "coordination_strategy": "file_lock"
                })

    return {
        "nodes": nodes,
        "parallel_groups": parallel_groups
    }

3.2 Bite-Sized Task Format

Each task MUST follow the TDD bite-sized format. Every task is one focused action (2-5 minutes) with exact file paths and complete code:

### Task 1.1: [Component Name]

**Files:**
- Create: `exact/path/to/file.ts`
- Modify: `exact/path/to/existing.ts:123-145`
- Test: `tests/exact/path/to/test.ts`

**Step 1: Write the failing test**

```typescript
test('specific behavior', () => {
    const result = function(input);
    expect(result).toBe(expected);
});

**St

Read more
@ibrahim-3d
Ships withorchestrator-supaconductor

Multi-agent orchestration system for Claude Code with parallel execution, automated quality gates, Board of Directors, and bundled Superpowers skills

38242 skills15 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
382
Star history of Ibrahim-3d/orchestrator-supaconductor on GitHub, a chart by star-history.com

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about loop-planner.

Which coding agents can use loop-planner?
loop-planner installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.