> ## Documentation Index
> Fetch the complete documentation index at: https://docs.duckie.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Engineering Collaboration

> Route engineering questions through Slack and keep support in the loop

Engineering collaboration is handled by an autonomous internal agent deployed to Slack or another team channel. It posts concise summaries, captures engineer questions, and sends structured requests back to the originating workflow.

Use a Duckie Assistant agent for reporting, run review, and improving Duckie behavior. Do not use a Duckie Assistant agent as the real-time engineering collaboration agent.

## What It Does

The engineering collaboration function:

* Posts new bug summaries to an engineering triage channel
* Links the support ticket, engineering issue, and Duckie run
* Captures engineer questions from Slack replies or issue comments
* Converts engineering questions into structured requests
* Routes customer-facing questions back to the original support ticket
* Routes internal-only questions to the support owner or triage reviewer
* Syncs answers back to Slack and the Linear or Jira issue
* Records the collaboration trail for reporting

## Recommended Components

| Need                            | Duckie component                               |
| ------------------------------- | ---------------------------------------------- |
| Internal engineering discussion | Autonomous internal Slack agent                |
| Issue tracker updates           | Linear or Jira app tools                       |
| Question routing                | Deterministic question routing workflow        |
| Customer-safe wording           | Customer follow-up agent called by workflow    |
| Audit trail                     | Runs, issue comments, and support ticket notes |

## Flow

```mermaid theme={null}
flowchart TD
  Issue["Linear or Jira issue"]
  Issue --> SlackAgent["Engineering Slack agent"]
  SlackAgent --> Channel["Engineering triage channel"]
  Channel --> EngineerQuestion["Engineer asks question"]
  EngineerQuestion --> Parse["Parse question and needed audience"]
  Parse --> Internal["Ask support owner internally"]
  Parse --> Customer["Route to customer follow-up workflow"]
  Internal --> Answer["Structured answer"]
  Customer --> Answer
  Answer --> Issue
  Answer --> Channel
```

## Question Types

| Question type                     | Route                                                            |
| --------------------------------- | ---------------------------------------------------------------- |
| **Customer can answer**           | Original support ticket through the customer follow-up workflow. |
| **Support owner can answer**      | Internal support Slack channel or ticket internal note.          |
| **Requires logs or product data** | Product/log lookup workflow or support operations owner.         |
| **Already answered in ticket**    | Sync answer back to issue and Slack with source link.            |
| **Sensitive or policy-related**   | Manual support or engineering review before customer contact.    |

## Slack Message Shape

Engineering summaries should be short and answerable.

```text theme={null}
New customer-reported bug

Issue: ENG-123
Support ticket: ticket_123
Product area: Dashboard
Impact: Priority customer cannot view project metrics
Repro status: Steps present, console logs missing

Suggested next action:
Review repro steps. If logs are required, reply with the exact question to send the customer.
```

## Structured Question Contract

```json theme={null}
{
  "question_id": "q_123",
  "engineering_issue_id": "ENG-123",
  "support_ticket_id": "ticket_123",
  "audience": "customer | support_owner | internal_data_lookup",
  "question": "Can the customer share the browser console error after the dashboard goes blank?",
  "why_needed": "Engineering needs the client-side error to identify the failing component.",
  "sensitive": false
}
```

<Info>
  The Slack agent should keep engineering fast, but the workflow should decide where a question goes. That keeps customer contact, internal notes, and issue comments consistent.
</Info>

## Related Docs

<CardGroup cols={2}>
  <Card title="Slack" icon="slack" href="/integrations/messaging/slack">
    Connect Duckie to engineering channels.
  </Card>

  <Card title="Autonomous Agents" icon="wand-magic-sparkles" href="/agents/autonomous-agents">
    Configure the internal engineering collaboration agent.
  </Card>

  <Card title="Escalation Rules" icon="arrow-up-right-from-square" href="/guardrails/escalation-rules">
    Define when engineering questions need human review.
  </Card>

  <Card title="Runs" icon="clock-rotate-left" href="/analytics/runs">
    Inspect the collaboration trail.
  </Card>
</CardGroup>
