Loading documentation...
Complete reference for Stride YAML configuration files
Complete reference for Stride YAML configuration files.
Stride projects are configured using YAML files that define workflows, custom fields, and automation rules. Configuration files are stored in your repository and can be edited through the web interface or directly in your Git repository.
project_key (required)^[A-Z0-9]{2,10}$)APP, WEB, API123project_key: APP
yamlproject_name (required)My Application, Web Platformproject_name: My Application
yamlworkflow (required)Defines the workflow statuses and default status for new issues.
default_status (required)workflow.statusesworkflow:
default_status: todo
yamlstatuses (required)Each status in the statuses array must have:
key (required)todo, in_progress, donename (required)To Do, In Progress, Donetype (required)open, in_progress, closed)open: Initial status for new issuesin_progress: Active work statusclosed: Terminal status. Cannot transition back to open or in_progress (except via "reopened" status)transitions field to restrict transitions.transitions (optional)undefined (all transitions allowed)Example - Restrict "To Do" to only allow transitions to "In Progress" or "In Review":
workflow:
statuses:
- key: todo
name: To Do
type: open
transitions: [in_progress, in_review] # Can only move to these statuses
- key: in_progress
name: In Progress
type: in_progress
# No transitions defined = can move to any status
- key: in_review
name: In Review
type: in_progress
transitions: [done, in_progress] # Can only move to done or back to in_progress
- key: done
name: Done
type: closed
# No transitions defined = can move to other closed statuses or reopened
yamlworkflow:
statuses:
- key: todo
name: To Do
type: open
- key: in_progress
name: In Progress
type: in_progress
- key: in_review
name: In Review
type: in_progress
- key: done
name: Done
type: closed
yamlcustom_fields (optional)[]Each custom field must have:
key (required)priority, estimate, componentname (required)Priority, Story Points, Componenttype (required)text, number, dropdown, date, boolean, textarea)Type Details:
text: Free-form text inputnumber: Numeric valuedropdown: Selection from predefined options (requires options array)date: Date valueboolean: True/false checkboxtextarea: Multi-line text input with Markdown supportTextarea Field Details:
The textarea field type provides a multi-line text input with full Markdown editing and rendering support:
text fields (string type, optional/required)Example - Textarea Field with Markdown:
custom_fields:
- key: meeting_notes
name: Meeting Notes
type: textarea
required: false
yamlWhen users enter content in a textarea field, they can use Markdown syntax:
# Meeting Summary
## Discussion Points
- Discussed feature requirements
- Agreed on timeline
- Next steps identified
**Action Items**:
1. Review design mockups
2. Schedule follow-up meeting
See [documentation](/docs/feature) for details.
markdownThe content will be rendered as formatted HTML in the issue view, with proper styling for headings, lists, bold text, and links.
options (optional)type is dropdowncustom_fields:
- key: priority
name: Priority
type: dropdown
options: [Low, Medium, High, Critical]
required: true
- key: estimate
name: Story Points
type: number
required: false
- key: component
name: Component
type: text
required: false
- key: due_date
name: Due Date
type: date
required: false
- key: blocked
name: Blocked
type: boolean
required: false
- key: meeting_notes
name: Meeting Notes
type: textarea
required: false
yamlrequired (optional)falseNote: Required fields are enforced when changing issue status. If a required field is missing, the status transition will be blocked with a validation error.
automation_rules (optional)[]Each automation rule must have:
trigger (required)branch_created, pr_merged, webhook_receivedaction (required)update_status, assign_user, add_labelconditions (optional){ branch_pattern: "feature/*", status: "todo" }automation_rules:
- trigger: branch_created
action: update_status
conditions:
branch_pattern: "feature/*"
target_status: "in_progress"
- trigger: pr_merged
action: update_status
conditions:
target_status: "done"
yamluser_assignment (optional)default_assignee (optional)none, reporter)nonenone: Issue starts unassigned (default behavior)reporter: Automatically assign to issue reporteruser_assignment:
default_assignee: reporter # Auto-assign to reporter
yamlassignee_required (optional)falseclone_preserve_assignee (optional)truetrue: Cloned issue keeps original assignee (default)false: Cloned issue starts unassignedrequire_assignee_for_statuses (optional)[]["in_progress", "in_review"] - Issues must be assigned before moving to these statusesuser_assignment:
default_assignee: reporter
assignee_required: false
clone_preserve_assignee: true
require_assignee_for_statuses: [in_progress, in_review]
yamlNotes:
require_assignee_for_statuses is configured, status transitions to those statuses will be blocked if no assignee is setrequire_assignee_for_statuses must match keys defined in workflow.statusesdefault_assignee setting applies only when creating new issues, not when updating existing onesai_triage_config (optional)Note: YAML configuration uses snake_case (ai_triage_config). TypeScript schema property is camelCase (aiTriageConfig).
permissions (optional)['admin']'admin', 'member', 'viewer' (array can contain any combination)['admin', 'member'] allows both Admin and Member roles to use AI triageDefault behavior: If ai_triage_config is not configured or permissions is not specified, only Admin users can use AI triage.
Permission configuration scenarios:
permissions: ['admin'] or omit configurationpermissions: ['admin', 'member']permissions: ['admin', 'member', 'viewer']permissions: ['member'] (Admin can still access, but this configures explicit member access)ai_triage_config:
permissions: ['admin', 'member'] # Allow Admin and Member roles
yamlenabled (optional)trueai_triage_config:
enabled: true # Enable AI triage (default)
permissions: ['admin'] # Admin only (default)
yamlExample 1: Default Configuration (Admin Only)
# Default behavior - Admin only, enabled
# Can be omitted entirely (defaults apply)
ai_triage_config:
permissions: ['admin']
enabled: true
yamlExample 2: Allow Admin and Members
ai_triage_config:
permissions: ['admin', 'member']
enabled: true
yamlExample 3: Disable AI Triage
ai_triage_config:
enabled: false
permissions: ['admin'] # Still required field, but feature disabled
yamlExample 4: Full Configuration Context
project_key: APP
project_name: My Application
workflow:
default_status: todo
statuses:
- key: todo
name: To Do
type: open
- key: in_progress
name: In Progress
type: in_progress
- key: done
name: Done
type: closed
custom_fields:
- key: priority
name: Priority
type: dropdown
options: [Low, Medium, High, Critical]
required: false
# AI Triage Configuration
ai_triage_config:
permissions: ['admin', 'member'] # Allow Admin and Member roles
enabled: true # Enable AI triage feature
yamlIf ai_triage_config is not configured:
permissions defaults to ['admin'] (Admin only)enabled defaults to true (enabled)To override defaults:
ai_triage_config section in your YAML filepermissions to change allowed rolesenabled: false to disable AI triageproject_key: APP
project_name: My Application
workflow:
default_status: todo
statuses:
- key: todo
name: To Do
type: open
# No transitions defined = can move to any status
- key: in_progress
name: In Progress
type: in_progress
# No transitions defined = can move to any status
- key: in_review
name: In Review
type: in_progress
# No transitions defined = can move to any status
- key: done
name: Done
type: closed
# No transitions defined = can move to other closed statuses or reopened
- key: reopened
name: Reopened
type: in_progress
custom_fields:
- key: priority
name: Priority
type: dropdown
options: [Low, Medium, High, Critical]
required: false
yamlproject_key: APP
project_name: My Application
workflow:
default_status: todo
statuses:
- key: todo
name: To Do
type: open
transitions: [in_progress, in_review] # Can only move to in_progress or in_review
- key: in_progress
name: In Progress
type: in_progress
transitions: [in_review, done] # Can move to review or done (but not back to todo)
- key: in_review
name: In Review
type: in_progress
transitions: [done, in_progress] # Can move to done, or back to in_progress for changes
- key: done
name: Done
type: closed
transitions: [reopened] # Can only reopen, cannot go to other statuses
- key: reopened
name: Reopened
type: in_progress
transitions: [in_progress, in_review] # Can go back to work
custom_fields:
- key: priority
name: Priority
type: dropdown
options: [Low, Medium, High, Critical]
required: false
- key: meeting_notes
name: Meeting Notes
type: textarea
required: false
yamlproject_key: APP
project_name: My Application
workflow:
default_status: todo
statuses:
- key: todo
name: To Do
type: open
- key: in_progress
name: In Progress
type: in_progress
- key: in_review
name: In Review
type: in_progress
- key: done
name: Done
type: closed
- key: reopened
name: Reopened
type: in_progress
custom_fields:
- key: priority
name: Priority
type: dropdown
options: [Low, Medium, High, Critical]
required: true
- key: estimate
name: Story Points
type: number
required: false
- key: component
name: Component
type: text
required: false
- key: meeting_notes
name: Meeting Notes
type: textarea
required: false
automation_rules:
- trigger: branch_created
action: update_status
conditions:
branch_pattern: "feature/*"
target_status: "in_progress"
user_assignment:
default_assignee: reporter
assignee_required: false
clone_preserve_assignee: true
require_assignee_for_statuses: [in_progress, in_review]
yaml^[A-Z0-9]{2,10}$default_status must match a status keyopen, in_progress, closedoptions arraytext, number, dropdown, date, boolean, textareaDefault Behavior (Permissive):
transitions is not defined on a status, all transitions are allowed (permissive default)Built-in Restrictions:
closed to open or in_progress (except via "reopened" status)Explicit Transition Rules:
transitions array is defined on a status, only transitions to those statuses are allowedtransitions array means no transitions are allowed from that statusOther Validations:
Last updated: January 12, 2026