Overview
TheTracker interface defines how the orchestrator integrates with issue tracking systems. Tracker plugins fetch issue details, generate branch names, and create prompts for agents to work on specific issues.
Plugin Slot: trackerDefault Plugin:
github
Interface Definition
Methods
string
required
Plugin name identifier (e.g.
"github", "linear", "jira").(identifier: string, project: ProjectConfig) => Promise<Issue>
required
Fetch issue details from the tracker.Parameters:
identifier- Issue identifier (e.g."42","INT-1327", GitHub URL)project- Project configuration
(identifier: string, project: ProjectConfig) => Promise<boolean>
required
Check if issue is completed/closed.Parameters:
identifier- Issue identifierproject- Project configuration
(identifier: string, project: ProjectConfig) => string
required
Generate a URL for the issue.Parameters:
identifier- Issue identifierproject- Project configuration
(url: string, project: ProjectConfig) => string
Optional: Extract a human-readable label from an issue URL (e.g.
"INT-1327", "#42").Parameters:url- Issue URLproject- Project configuration
(identifier: string, project: ProjectConfig) => string
required
Generate a git branch name for the issue.Parameters:
identifier- Issue identifierproject- Project configuration
"fix-auth-bug-42", "int-1327-improve-performance")(identifier: string, project: ProjectConfig) => Promise<string>
required
Generate a prompt for the agent to work on this issue.Parameters:
identifier- Issue identifierproject- Project configuration
(filters: IssueFilters, project: ProjectConfig) => Promise<Issue[]>
Optional: List issues with filters.Parameters:
filters- Filter criteria (state, labels, assignee, limit)project- Project configuration
(identifier: string, update: IssueUpdate, project: ProjectConfig) => Promise<void>
Optional: Update issue state.Parameters:
identifier- Issue identifierupdate- Fields to update (state, labels, assignee, comment)project- Project configuration
(input: CreateIssueInput, project: ProjectConfig) => Promise<Issue>
Optional: Create a new issue.Parameters:
input- Issue fields (title, description, labels, assignee, priority)project- Project configuration
Related Types
Issue
string
required
Unique issue identifier
string
required
Issue title
string
required
Full issue description (may be markdown)
string
required
URL to view issue
string
required
Issue state:
"open", "in_progress", "closed", or "cancelled"string[]
required
Array of label strings
string
Username of assignee
number
Priority level (higher = more urgent)
IssueFilters
IssueUpdate
CreateIssueInput
Usage Examples
Implementing a Tracker Plugin
Using Tracker in Session Manager
Implementation Notes
Issue Identifier Normalization
Trackers should accept flexible identifier formats:- GitHub:
"42","#42","https://github.com/owner/repo/issues/42" - Linear:
"INT-1327","https://linear.app/team/issue/INT-1327" - Jira:
"PROJ-123","https://company.atlassian.net/browse/PROJ-123"
Prompt Generation
ThegeneratePrompt() method should:
- Include issue title and description
- Add issue URL for reference
- Include relevant metadata (labels, priority)
- Format for agent consumption (markdown preferred)
Authentication
Trackers typically rely on environment variables or CLI tools:- GitHub:
ghCLI (uses~/.config/gh/hosts.yml) - Linear:
LINEAR_API_KEYenvironment variable - Jira:
JIRA_TOKEN+JIRA_URL
Built-in Plugins
- github - GitHub Issues (default, uses
ghCLI) - linear - Linear (uses GraphQL API)
