Skip to main content

Transfer Rules

Configure automatic issue routing to the correct repositories.

Overview

Issue routing helps:
  • Move issues to correct repositories automatically
  • Prevent wrong-repo issues
  • Reduce manual sorting
  • Improve issue organization
Two routing modes:
  1. Rule-Based: Pattern matching on metadata
  2. LLM-Based: Semantic analysis with AI

Enable transfer

With enabled: false, no routing happens.

Rule-based routing

Match issues against explicit patterns:

Rule matching logic

All conditions must match (AND logic):
If all conditions match → issue is routed to target.

Condition types

1. Labels (AND - all required)

2. Labels any (OR - any required)

3. Title contains

4. Body contains

5. Author

Priority

Rules evaluated by priority (highest first):
First matching rule wins.

LLM-based routing

Use AI to understand issue content:
LLM routing:
  • Analyzes issue against repository descriptions
  • Understands semantic context
  • Makes intelligent decisions
  • Configurable as primary or fallback

Combined approach

Use both rule-based and LLM:

Complete rule example

Avoiding routing loops

Prevent infinite routing:
Simili Bot automatically:
  • Tracks which repo an issue came from
  • Prevents routing back to same repo
  • Maintains blocked_targets list
  • Won’t route same issue twice

Disable specific rules

Temporarily disable a rule:

Common patterns

By feature area

By issue type

By team

Configuration reference

Rule fields

Testing rules

Dry-run mode

Test without transferring:
Output shows:

Check logs

Logs show routing decisions:

Troubleshooting

Rule not matching

Debug steps:
  1. Check rule is enabled: true
  2. Verify all conditions are correct
  3. Use dry-run to see which rules match
  4. Check logs for condition evaluation

Wrong repository selected

Causes:
  • Higher priority rule matches first
  • Adjust rule priorities
  • Add more specific conditions
  • Enable LLM fallback for context

Issue not transferred

Causes:
  • Rule didn’t match
  • Transfer disabled (enabled: false)
  • Permission denied
  • Loop prevention blocked transfer
Solutions:
  • Enable transfer
  • Check GitHub token permissions
  • Verify target repo exists
  • Check rule conditions

Performance notes

  • Rule evaluation is fast (<100ms)
  • LLM routing takes 2-5 seconds
  • Combine for best results:
    • Rules for obvious cases
    • LLM as fallback/intelligent

Best practices

1. Use clear rule names

2. Start with high priorities

3. Combine conditions carefully

4. Monitor routing

Check logs regularly:
  • Are issues going to right repos?
  • Any unexpected routings?
  • Adjust rules as needed

5. Use LLM as fallback

Or use with rules:

Next steps

Issue routing guide

Learn how issue routing works

Patterns overview

Setup multi-repository management