Skip to main content
The engineering issue workflow turns a repro-ready intake case into a Linear or Jira issue. It should be deterministic because issue fields, labels, links, and sync behavior need to stay consistent.

What It Does

The engineering issue workflow:
  • Receives a repro-ready bug intake record
  • Checks for duplicate or related engineering issues
  • Drafts a concise engineering issue description
  • Sets team, project, labels, priority, severity, and customer impact fields
  • Links the issue to the original support ticket and Duckie run
  • Posts a summary to an engineering Slack channel when review is needed
  • Syncs issue comments, questions, status changes, and resolution back to the workflow
NeedDuckie component
Create or update issuesLinear or Jira app tools
Enforce field valuesEngineering issue workflow
Draft issue contentBug intake agent called by workflow
Detect duplicatesIssue tracker search tool and deterministic matching rules
Notify engineeringSlack engineering agent
Sync issue updatesIssue tracker deployment or custom webhook

Flow

Issue Content

The created issue should include:
  • Short title with product area and observed failure
  • Customer impact and severity
  • Affected customer or account link when allowed
  • Reproduction steps
  • Expected behavior
  • Actual behavior
  • Environment details
  • Logs, screenshots, recordings, or trace links
  • Known incident or duplicate references
  • Original support ticket link
  • Duckie run link
  • Support owner or follow-up owner

Suggested Issue Contract

{
  "title": "[Dashboard] Blank state after login for priority customer",
  "description": "Customer can log in, but the dashboard loads as a blank page.",
  "product_area": "dashboard",
  "severity": "high",
  "priority": "urgent",
  "labels": ["customer_reported", "dashboard"],
  "team": "web app",
  "customer_impact": "Priority customer cannot view project metrics.",
  "steps_to_reproduce": ["log in as affected user", "open dashboard"],
  "expected_behavior": "dashboard loads project metrics",
  "actual_behavior": "dashboard is blank",
  "support_ticket_url": "https://helpdesk.example/tickets/123",
  "duckie_run_url": "https://duckie.example/runs/run_123"
}

Sync Fields

Store the relationship between systems in workflow state or a durable record.
FieldPurpose
support_ticket_idRoutes customer updates back to the original conversation.
engineering_issue_idUpdates the correct Linear or Jira issue.
engineering_issue_urlLinks support and stakeholder updates.
engineering_slack_thread_urlKeeps engineering discussion tied to the issue.
customer_follow_up_statusTracks whether Duckie is waiting on the customer.
engineering_question_statusTracks whether engineering is waiting on support or customer input.
resolution_statusTracks whether the fix is shipped, workaround-only, duplicate, or not planned.
Do not let the issue workflow invent severity, priority, or customer commitments outside the team’s rules. Let agents recommend values, then let the workflow enforce allowed fields and approval gates.

Linear

Connect Duckie to Linear issues.

Jira

Connect Duckie to Jira issues.

Workflows

Build deterministic issue creation and sync logic.

Custom Webhooks

Trigger sync from issue tracker events.