Skip to content

Issue Types

issue_types.yaml defines the available issue types for a project or organization. Each issue type can specify its own workflow, enabling different issue categories to follow different lifecycles.

Basic Structure

model_version: "1.0"

issue_types:
  - key: Bug
    label: Bug Report
    allow_children: false
    color: danger
    icon: bug
    position: 0
    active: true
    workflow: bug

  - key: Feature
    label: Feature Request
    allow_children: true
    color: primary
    icon: bookmark
    position: 1
    active: true

  - key: Task
    label: Task
    allow_children: false
    color: info
    icon: check-square
    position: 2
    active: true

Issue Type Configuration

Field Required Description
key Yes Unique identifier (PascalCase, e.g., Bug, UserStory)
label No Display name (defaults to key titleized)
allow_children No Whether issues of this type can have child issues (default: false)
color No Badge color variant (default: primary)
icon No Icon name (default: bookmark)
position No Sort order in dropdown menus
active No Whether this type is available for new issues (default: true)
workflow No Workflow key to use for this issue type

Multi-Workflow Support

By default, all issue types use the project's default workflow (typically main.yaml or workflow.yaml). You can assign specific workflows to issue types using the workflow field.

Example: Engineering Definition

Consider an engineering team that needs different workflows for bugs and incidents:

.kiket/issue_types.yaml

model_version: "1.0"

issue_types:
  - key: Bug
    label: Bug
    color: danger
    icon: bug
    workflow: bug        # Uses workflows/bug.yaml

  - key: Incident
    label: Incident
    color: danger
    icon: flag
    workflow: incident   # Uses workflows/incident.yaml

  - key: Task
    label: Task
    color: info
    icon: check-square
    # No workflow specified - uses default workflow

  - key: Story
    label: Story
    color: primary
    icon: bookmark
    # No workflow specified - uses default workflow

.kiket/workflows/bug.yaml

model_version: 1.0
workflow:
  id: bug
  name: Bug Tracking
  version: 1.0.0
states:
  open:
    type: initial
  investigating:
    type: active
  resolved:
    type: final
transitions:
  - from: open
    to: investigating
  - from: investigating
    to: resolved

.kiket/workflows/incident.yaml

model_version: 1.0
workflow:
  id: incident
  name: Incident Response
  version: 1.0.0
states:
  detected:
    type: initial
  responding:
    type: active
  resolved:
    type: final
transitions:
  - from: detected
    to: responding
  - from: responding
    to: resolved

Workflow Key Requirements

  • Lowercase alphanumeric: Must start with a letter, contain only lowercase letters, numbers, hyphens, and underscores
  • Matches workflow id: The workflow key should match the workflow.id field in the referenced workflow file
  • File naming convention: Workflow file should be named {workflow_key}.yaml (e.g., bug.yaml for workflow key bug)

How Workflow Selection Works

  1. When an issue is created or updated, Kiket checks the issue's type
  2. If the issue type has a workflow key, Kiket loads that specific workflow
  3. If no workflow key is specified, Kiket uses the project's default workflow
  4. Available transitions and state metadata are determined by the selected workflow

Colors

Valid color values (maps to Bootstrap variants):

Color Variant
primary Blue
secondary Gray
success Green
danger Red
warning Yellow/Orange
info Light blue
light Light gray
dark Dark gray
purple Purple

Common color names are also supported and mapped automatically: - blueprimary - greensuccess - reddanger - yellow, orangewarning - gray, greysecondary

Icons

Valid icon names:

Icon Use Case
bookmark General items, stories
flag Incidents, milestones
bug Bugs, defects
check-square Tasks, to-dos
lightning Spikes, research
diagram-3 Epics, initiatives
kanban Board items
star Featured items
target Goals, OKRs
gear Configuration tasks
layers Contracts, documents
circle Generic items

Validation

Use the CLI linter to validate your issue types configuration:

kiket definitions lint --issue_types

The linter checks: - Required key field on each issue type - Valid key format (alphanumeric starting with letter) - Valid color and icon values - Valid workflow key format - Cross-references workflow files to ensure referenced workflows exist

Organization vs Project Scope

Issue type definitions can be scoped to:

  1. Organization level: Defined in organization workflow repository, applies to all projects
  2. Project level: Defined in project repository, overrides organization defaults

When syncing, Kiket merges definitions with project-level taking precedence.