Skip to content

Workflow Customization

Weave's agent system is fully configurable. Loom remains the main user-facing orchestrator, but you can disable agents you don't need, add custom specialists, change which models back each agent, and reshape the delegation workflow around it — all through configuration.

This page shows practical recipes for common workflow customizations.

Understanding the Default Workflow

Out of the box, Weave uses this delegation flow:

User → Loom (orchestrator)
         ├── Pattern (planning)
         ├── Thread (exploration)
         ├── Spindle (research)
         ├── Shuttle (coding)
         ├── Weft (review)
         └── Warp (security)
         
Plan execution via `/start-work`: Loom → Tapestry (coordinates step-by-step delegation to Shuttle)

Every part of this is customizable:

  • Disable any agent you don't use
  • Reconfigure any agent's model, temperature, or tools
  • Add new agents that participate in the workflow
  • Reshape delegation by adding triggers that tell Loom when to use each agent

Recipe: Dual Security Review

Get two independent security perspectives by adding a second reviewer backed by a different model:

jsonc
{
  // Keep the built-in Warp (Anthropic-backed) and add a GPT-backed reviewer
  "custom_agents": {
    "security-gpt": {
      "display_name": "Security (GPT)",
      "description": "Independent security review using OpenAI for diverse coverage",
      "model": "openai/gpt-5",
      "category": "advisor",
      "cost": "EXPENSIVE",
      "prompt": "You are a security auditor. Review code for OWASP Top 10 vulnerabilities, authentication flaws, injection attacks, data exposure, and insecure dependencies. Be thorough and skeptical. Produce a clear APPROVE or REJECT verdict.",
      "tools": {
        "write": false,
        "edit": false,
        "bash": false
      },
      "triggers": [
        { "domain": "Security", "trigger": "Independent security review using a different model for diverse analysis" }
      ]
    }
  }
}

Loom will now see both warp and security-gpt as security reviewers. You can instruct Loom to use both via prompt_append:

jsonc
{
  "agents": {
    "loom": {
      "prompt_append": "When reviewing security-sensitive changes, delegate to BOTH Warp AND Security (GPT) for independent reviews."
    }
  }
}

Recipe: Minimal Agent Setup

Strip Weave down to just the agents you need. For example, a solo developer who doesn't need planning or research:

jsonc
{
  "disabled_agents": ["pattern", "spindle", "weft", "warp"],
  "agents": {
    "loom": {
      "prompt_append": "Skip planning phases. Work directly with Thread for exploration and Shuttle for coding."
    }
  }
}

This leaves only loom, tapestry, shuttle, and thread — a lean setup for rapid prototyping.

Recipe: Replace the Review Pipeline

Swap out the built-in reviewers for custom ones tailored to your team's standards:

jsonc
{
  // Disable built-in reviewers
  "disabled_agents": ["weft", "warp"],

  // Add team-specific reviewers
  "custom_agents": {
    "code-reviewer": {
      "display_name": "Code Reviewer",
      "description": "Reviews code against team standards and patterns",
      "model": "anthropic/claude-sonnet-4",
      "category": "advisor",
      "cost": "CHEAP",
      "skills": ["company-standards", "testing"],
      "prompt": "Review code changes for correctness, maintainability, and adherence to team conventions. Check test coverage. Approve or request changes with specific, actionable feedback.",
      "tools": {
        "write": false,
        "edit": false,
        "bash": false
      },
      "triggers": [
        { "domain": "Code Review", "trigger": "Code quality review, standards compliance, test coverage verification" }
      ]
    },
    "compliance-checker": {
      "display_name": "Compliance",
      "description": "Checks for regulatory and licensing compliance",
      "model": "anthropic/claude-sonnet-4",
      "category": "advisor",
      "cost": "CHEAP",
      "prompt": "Check code for licensing compliance, PII handling, GDPR requirements, and regulatory concerns. Flag any issues with third-party dependencies.",
      "tools": {
        "write": false,
        "edit": false,
        "bash": false
      },
      "triggers": [
        { "domain": "Compliance", "trigger": "License checks, PII handling, regulatory review" }
      ]
    }
  }
}

Recipe: Domain-Specialized Specialist Agents

Instead of one general-purpose Shuttle, add domain-specific specialist agents:

jsonc
{
  "custom_agents": {
    "frontend-dev": {
      "display_name": "Frontend Dev",
      "description": "React/TypeScript frontend specialist",
      "model": "anthropic/claude-sonnet-4",
      "category": "specialist",
      "cost": "CHEAP",
      "skills": ["react-best-practices", "typescript-strict", "accessibility"],
      "prompt_file": ".opencode/prompts/frontend.md",
      "triggers": [
        { "domain": "Frontend", "trigger": "React components, CSS, accessibility, UI/UX implementation" }
      ]
    },
    "backend-dev": {
      "display_name": "Backend Dev",
      "description": "Python FastAPI backend specialist",
      "model": "anthropic/claude-sonnet-4",
      "category": "specialist",
      "cost": "CHEAP",
      "skills": ["python-patterns", "api-design"],
      "prompt_file": ".opencode/prompts/backend.md",
      "triggers": [
        { "domain": "Backend", "trigger": "API endpoints, database queries, business logic, background jobs" }
      ]
    },
    "infra-dev": {
      "display_name": "Infrastructure",
      "description": "DevOps and infrastructure specialist",
      "model": "anthropic/claude-sonnet-4",
      "category": "specialist",
      "cost": "CHEAP",
      "skills": ["docker", "ci-cd"],
      "triggers": [
        { "domain": "Infrastructure", "trigger": "Docker, CI/CD pipelines, deployment, monitoring, IaC" }
      ]
    }
  }
}

Loom's delegation table will now include all three specialists, and it will route tasks based on the domain triggers.

Recipe: Research-Heavy Workflow

For teams that need extensive research before coding — add specialized research agents:

jsonc
{
  "custom_agents": {
    "api-researcher": {
      "display_name": "API Researcher",
      "description": "Researches third-party APIs and libraries",
      "model": "anthropic/claude-sonnet-4",
      "category": "exploration",
      "cost": "CHEAP",
      "prompt": "Research third-party APIs, SDKs, and libraries. Read documentation, find examples, and summarize integration approaches. Never write production code — only research and recommend.",
      "tools": {
        "write": false,
        "edit": false
      },
      "triggers": [
        { "domain": "Research", "trigger": "Third-party API investigation, library evaluation, integration research" }
      ]
    }
  },
  "agents": {
    "loom": {
      "prompt_append": "Before implementing any third-party integration, always delegate to API Researcher first to understand the API surface."
    }
  }
}

Combining Mechanisms

The most powerful configurations combine multiple mechanisms together:

jsonc
{
  // Optimize built-in agents
  "agents": {
    "loom": {
      "model": "anthropic/claude-opus-4",
      "prompt_append": "Prioritize security review for any auth-related changes."
    },
    "thread": {
      "model": "anthropic/claude-3-haiku"
    }
  },

  // Add custom specialists
  "custom_agents": {
    "perf-analyzer": {
      "display_name": "Performance Analyst",
      "model": "anthropic/claude-sonnet-4",
      "category": "advisor",
      "cost": "CHEAP",
      "prompt": "Analyze code for performance issues: N+1 queries, unnecessary re-renders, memory leaks, expensive computations in hot paths.",
      "tools": { "write": false, "edit": false, "bash": false },
      "triggers": [
        { "domain": "Performance", "trigger": "Performance analysis, bottleneck identification, optimization review" }
      ]
    }
  },

  // Disable what you don't need
  "disabled_agents": ["spindle"],
  "disabled_hooks": ["context-window-monitor"],

  // Domain-specific categories for Shuttle
  "categories": {
    "backend": {
      "model": "anthropic/claude-opus-4",
      "prompt_append": "Use async/await. Include comprehensive error handling."
    }
  }
}

Start Simple

Don't try to configure everything at once. Start with the default workflow, identify friction points, and customize incrementally. The most effective configurations are targeted — solving specific problems rather than trying to optimize everything.

Released under the MIT License.