Skip to content

Issues

An Issue in GuideMode represents a unit of work tracked across various providers (GitHub, Jira, Linear, Notion). Issues are central to work tracking, powering metrics like lead time, cycle time, and work distribution.

Issues in GuideMode:

  • Track work items from all connected providers
  • Categorize by type (feature, bug, discovery, etc.)
  • Track state transitions for cycle time metrics
  • Link to pull requests for delivery tracking
  • Connect to deployments for lead time calculations

GuideMode classifies all issues into canonical types, regardless of provider:

Diagram
TypeDescriptionExamples
featureNew functionality or capability”Add user authentication”, “Implement search”
bugDefects or issues to fix”Login fails on mobile”, “Data not saving”
choreMaintenance and housekeeping”Update dependencies”, “Refactor auth module”
discoveryResearch, spikes, or exploration”Investigate caching options”, “Prototype new UI”
incidentProduction incidents or outages”API downtime”, “Database connection errors”
otherUncategorized issuesDefault when type can’t be determined

Issue types are determined by mapping labels from each provider:

Diagram

You can configure label-to-type mappings in Settings → Integrations → Label Mappings.

Issues have three possible states that drive lifecycle metrics:

Diagram
StateDescriptionSets Timestamp
openIssue created, not yet startedcreatedAt
in_progressWork actively being donestartedAt
closedIssue resolved or completedclosedAt

Different providers represent states differently:

ProviderOpenIn ProgressClosed
GitHubOpen(via project column)Closed
JiraTo Do, BacklogIn Progress, In ReviewDone, Closed
LinearBacklog, TodoIn ProgressDone, Canceled
NotionNot StartedIn ProgressComplete
FieldTypeDescription
titlestringIssue title/summary
bodystringIssue description (optional)
urlstringWeb URL to issue
stateenum’open’, ‘closed’, ‘in_progress’
typeenum’feature’, ‘bug’, ‘chore’, ‘discovery’, ‘incident’, ‘other’
numberintegerIssue number (GitHub/GitLab style)
FieldDescription
providerSource provider (‘github’, ‘jira’, ‘linear’, ‘notion’)
externalIdProvider’s issue ID
linearIssueIdLinear’s UUID
linearIssueIdentifierLinear identifier (e.g., “ENG-123”)
jiraIssueKeyJira key (e.g., “PROJ-456”)
FieldDescription
authorIdGuideMode user who created issue
authorExternalIdProvider’s author ID
authorUsernameAuthor’s username
assigneeIdPrimary assignee (GuideMode user)
assigneeExternalIdProvider’s assignee ID
assigneeUsernameAssignee’s username
assigneeCountTotal number of assignees
FieldDescription
commentCountNumber of comments on issue

Timestamps are critical for calculating metrics. GuideMode tracks several:

Diagram
TimestampDescriptionUsed For
createdAtWhen issue was createdLead time start
startedAtWhen work began (moved to in_progress)Cycle time start
closedAtWhen issue was closedLead/cycle time end
firstResponseAtWhen first comment was addedFirst response SLA
updatedAtLast modificationFreshness tracking
lastSyncedAtLast sync from providerSync health
Diagram

Discovery issues have a special lifecycle focused on validation:

Diagram

See Issue Linking for details on discovery validation.

Time from issue creation to resolution:

Lead Time = closedAt - createdAt

Measures the total time a work item exists before completion.

Time from starting work to completion:

Cycle Time = closedAt - startedAt

Measures active work time, excluding waiting in backlog.

Time from creation to first engagement:

First Response Time = firstResponseAt - createdAt

Useful for support/incident response SLAs.

Breakdown of issues by type:

Feature % = (feature count / total count) × 100
Bug % = (bug count / total count) × 100
...

Helps understand planned vs unplanned work ratios.

Issues can have multiple labels for categorization:

FieldDescription
nameLabel name (e.g., “priority:high”)
colorHex color code (#ff0000)
descriptionLabel description
externalIdProvider’s label ID

Labels are synced from providers and used for:

  • Type mapping (label → issue type)
  • Filtering in dashboards
  • Custom categorization

The metadata field stores provider-specific data as JSON:

{
"milestone": {
"id": 123,
"title": "v2.0"
},
"priority": "high",
"custom_fields": {
"story_points": 5
}
}

This preserves provider-specific information that doesn’t map to standard fields.