Skip to content

Conversation

@PeyGis
Copy link
Contributor

@PeyGis PeyGis commented Oct 24, 2025

User description

Description

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context.

Added docs pages

Please also include the path for the added docs

  • Quickstart (/)
  • Blueprint (/platform-overview/port-components/blueprint)
  • ...

Updated docs pages

Please also include the path for the updated docs

  • Quickstart (/)
  • Blueprint (/platform-overview/port-components/blueprint)
  • ...

PR Type

Documentation, Enhancement


Description

  • Added comprehensive guide for AI-powered ticket triage system

  • Implements automated ticket evaluation and enrichment workflow

  • Integrates Jira tickets with AI agents for coding task readiness

  • Includes blueprints, scorecards, actions, and automations setup


Diagram Walkthrough

flowchart LR
  A["Jira Ticket Created"] -->|Automation Trigger| B["Ticket Triage Agent"]
  B -->|Evaluates & Scores| C["AI Readiness Assessment"]
  C -->|Suggests Improvements| D["Ask AI to Improve Action"]
  D -->|Human Review| E["Approve/Retry Actions"]
  E -->|Approved| F["Coding Agent Assignment"]
  F -->|Auto-Trigger| G["Claude Code Execution"]
Loading

File Walkthrough

Relevant files
Configuration changes
consts.js
Register new triage guide in guides section                           

src/components/guides-section/consts.js

  • Added new guide entry for "Triage tickets to coding agents"
  • Configured with tags: Autonomous Ticket Resolution, AI, Claude Code,
    Jira
  • Set guide link to /guides/all/triage-tickets-to-coding-agents
  • Included descriptive text about AI-powered ticket evaluation and
    enrichment
+7/-0     
Documentation
triage-tickets-to-coding-agents.md
Complete AI ticket triage system implementation guide       

docs/guides/all/triage-tickets-to-coding-agents.md

  • Created comprehensive 660-line guide documenting AI triage workflow
  • Defined data model with Jira ticket blueprint including triage stage
    and confidence score properties
  • Provided AI readiness scorecard configuration for evaluating ticket
    completeness
  • Included three self-service actions: Ask AI to Improve, Approve
    Suggestions, and Retry with feedback
  • Documented ticket triage AI agent with evaluation and scoring logic
  • Set up two automations: trigger triage on ticket creation and
    auto-assign coding agents on approval
  • Added testing workflow with sample ticket creation and verification
    steps
  • Included related guides and prerequisites sections
+660/-0 
ai-triage-test-workflow.textClipping
Add test workflow diagram asset                                                   

static/img/guides/ai-triage-test-workflow.textClipping

  • Added binary file for test workflow diagram visualization
  • Supports guide documentation with visual workflow representation
[link]   

@qodo-merge-pro
Copy link
Contributor

qodo-merge-pro bot commented Oct 24, 2025

You are nearing your monthly Qodo Merge usage quota. For more information, please visit here.

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
Insecure webhook configuration

Description: Webhook to trigger coding agent execution is hard-coded with a production-looking URL and
includes repository input 'service' suggesting potential misuse if copied verbatim without
auth/validation details.
triage-tickets-to-coding-agents.md [592-606]

Referred Code
"type": "WEBHOOK",
"url": "https://api.us.getport.io/v1/actions/run_claude_code_demo/runs",
"agent": false,
"synchronized": true,
"method": "POST",
"headers": {
  "RUN_ID": "{{ .run.id }}",
  "Content-Type": "application/json"
},
"body": {
  "properties": {
    "service": "<GITHUB-ORG>/<REPO>",
    "prompt": "You are a senior software engineer tasked with implementing the following approved ticket: '{{ .event.diff.after.title }}'.\n\nBase your implementation on the approved technical description below:\n\n{{ .event.diff.after.properties.description }}\n\nOnce complete, generate a pull request summarizing what was implemented and why."
  }
}
Unauthenticated agent invoke

Description: Agent invocation webhook exposes a publicly reachable URL pattern without documenting
authentication, which could encourage insecure deployments if adopted as-is.
triage-tickets-to-coding-agents.md [536-551]

Referred Code
"type": "WEBHOOK",
"url": "https://api.getport.io/v1/agent/ticket_triage_agent/invoke",
"agent": false,
"synchronized": true,
"method": "POST",
"headers": {
  "RUN_ID": "{{ .run.id }}",
  "Content-Type": "application/json"
},
"body": {
  "prompt": "Here is the created Jira ticket:\n Jira Ticket identifier: {{.event.diff.after.identifier}}\n\nJira Ticket Title:{{.event.diff.after.title}}\n\nFull Jira Ticket Entity: {{.event.diff.after.properties}}\n",
  "labels": {
    "source": "auto_enhance_jira_task_automation",
    "jira_ticket_id": "{{ .event.diff.after.identifier }}"
  }
}
Ticket Compliance
🎫 No ticket provided
- [ ] Create ticket/issue <!-- /create_ticket --create_ticket=true -->

</details></td></tr>
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
No custom compliance provided

Follow the guide to enable custom compliance check.

  • Update
Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@qodo-merge-pro
Copy link
Contributor

qodo-merge-pro bot commented Oct 24, 2025

You are nearing your monthly Qodo Merge usage quota. For more information, please visit here.

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
High-level
Guide references missing or incorrect images

The new documentation guide references several .png images that are missing from
the PR. A non-standard .textClipping file was added instead, which will not
render, so the required .png files should be added to the repository.

Examples:

docs/guides/all/triage-tickets-to-coding-agents.md [12]
<img src="/img/guides/ai-triage-workflow.png" alt="Workflow diagram" border="1px" width="100%" />
docs/guides/all/triage-tickets-to-coding-agents.md [638]
<img src="/img/guides/ai-triage-sample-ai-description.png" border="1px" width="80%" />

Solution Walkthrough:

Before:

// docs/guides/all/triage-tickets-to-coding-agents.md
...
<img src="/img/guides/ai-triage-workflow.png" ... />
...
<img src="/img/guides/ai-triage-sample-ai-description.png" ... />
...
<img src="/img/guides/ai-triage-test-workflow.png" ... />
...

// PR file list
- docs/guides/all/triage-tickets-to-coding-agents.md
- src/components/guides-section/consts.js
- static/img/guides/ai-triage-test-workflow.textClipping // Incorrect file

After:

// docs/guides/all/triage-tickets-to-coding-agents.md
// (No changes to this file)
...
<img src="/img/guides/ai-triage-workflow.png" ... />
...
<img src="/img/guides/ai-triage-sample-ai-description.png" ... />
...
<img src="/img/guides/ai-triage-test-workflow.png" ... />
...

// PR file list
- docs/guides/all/triage-tickets-to-coding-agents.md
- src/components/guides-section/consts.js
- static/img/guides/ai-triage-workflow.png
- static/img/guides/ai-triage-sample-ai-description.png
- static/img/guides/ai-triage-test-workflow.png
- static/img/guides/ai-triage-pr-creation.png
Suggestion importance[1-10]: 9

__

Why: The suggestion correctly identifies that crucial .png images referenced in the new documentation are missing, which will result in broken images and significantly degrade the guide's quality and usability.

High
Possible issue
Correct automation trigger condition value
Suggestion Impact:The commit modified the automation trigger, but instead of switching to current_stage == "Approved", it changed the condition to use the scorecard level "Ready for coding agent". This addresses the underlying logic error by correcting what the trigger checks, though not exactly as suggested.

code diff:

@@ -582,15 +653,15 @@
     "condition": {
       "type": "JQ",
       "expressions": [
-        ".diff.before.properties.current_stage != \"Ready for AI Coding Agent\"",
-        ".diff.after.properties.current_stage == \"Ready for AI Coding Agent\""
+        ".diff.before.scorecards.ai_readiness_stage.level != \"Ready for coding agent\"",
+        ".diff.after.scorecards.ai_readiness_stage.level == \"Ready for coding agent\""
       ],
       "combinator": "and"
     }

In the "auto_assign_claude_on_ready_for_ai" automation, update the trigger
condition to check for the current_stage value "Approved" instead of the
incorrect "Ready for AI Coding Agent".

docs/guides/all/triage-tickets-to-coding-agents.md [572-609]

 {
   "identifier": "auto_assign_claude_on_ready_for_ai",
   "title": "Auto-Assign Claude Coding Agent on Ready for AI",
   "description": "Automatically triggers Claude to begin code generation once a Jira ticket is approved and marked as 'Ready for AI'. This ensures a seamless handoff from human triage to AI execution.",
   "trigger": {
     "type": "automation",
     "event": {
       "type": "ENTITY_UPDATED",
       "blueprintIdentifier": "jira_ticket"
     },
     "condition": {
       "type": "JQ",
       "expressions": [
-        ".diff.before.properties.current_stage != \"Ready for AI Coding Agent\"",
-        ".diff.after.properties.current_stage == \"Ready for AI Coding Agent\""
+        ".diff.before.properties.current_stage != \"Approved\"",
+        ".diff.after.properties.current_stage == \"Approved\""
       ],
       "combinator": "and"
     }
   },
   "invocationMethod": {
     "type": "WEBHOOK",
     "url": "https://api.us.getport.io/v1/actions/run_claude_code_demo/runs",
     "agent": false,
     "synchronized": true,
     "method": "POST",
     "headers": {
       "RUN_ID": "{{ .run.id }}",
       "Content-Type": "application/json"
     },
     "body": {
       "properties": {
         "service": "<GITHUB-ORG>/<REPO>",
         "prompt": "You are a senior software engineer tasked with implementing the following approved ticket: '{{ .event.diff.after.title }}'.\n\nBase your implementation on the approved technical description below:\n\n{{ .event.diff.after.properties.description }}\n\nOnce complete, generate a pull request summarizing what was implemented and why."
       }
     }
   },
   "publish": true
 }

[Suggestion processed]

Suggestion importance[1-10]: 9

__

Why: This suggestion identifies a critical logic error in the automation trigger condition that would prevent the workflow from functioning as described, making it a high-impact fix.

High
Organization
best practice
Add alt text and validate image path

Add descriptive alt text and use a full path; ensure the image exists at the
specified path and keep consistent formatting.

docs/guides/all/triage-tickets-to-coding-agents.md [638]

-<img src="/img/guides/ai-triage-sample-ai-description.png" border="1px" width="80%" />
+<img src="/img/guides/ai-triage-sample-ai-description.png" alt="AI triage suggested description example" width="80%" border="1px" />
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why:
Relevant best practice - Images should use full path links under /static/img and include alt text and width; avoid incorrect image paths or missing alt text.

Low
Use full-path internal links

Replace internal relative links with full paths including https://docs.port.io
to ensure safer linking and control tab behavior.

docs/guides/all/triage-tickets-to-coding-agents.md [657-660]

-- [Automatically resolve tickets with coding agents](/guides/all/automatically-resolve-tickets-with-coding-agents)
-- [Trigger Claude Code from Port](/guides/all/trigger-claude-code-from-port)
-- [Trigger GitHub Copilot from Port](/guides/all/trigger-github-copilot-from-port)
-- [Track AI-driven pull requests](/guides/all/track-ai-driven-pull-requests)
+- [Automatically resolve tickets with coding agents](https://docs.port.io/guides/all/automatically-resolve-tickets-with-coding-agents)
+- [Trigger Claude Code from Port](https://docs.port.io/guides/all/trigger-claude-code-from-port)
+- [Trigger GitHub Copilot from Port](https://docs.port.io/guides/all/trigger-github-copilot-from-port)
+- [Track AI-driven pull requests](https://docs.port.io/guides/all/track-ai-driven-pull-requests)
  • Apply / Chat
Suggestion importance[1-10]: 5

__

Why:
Relevant best practice - Use full path links for internal links and ensure image paths are accurate; avoid relative or possibly broken links.

Low
General
Fix typo in action identifier
Suggestion Impact:The grammar in the description was corrected ("proceeds"), but the identifier typo remained unchanged.

code diff:

@@ -333,7 +406,7 @@
 {
   "identifier": "approve_ai_suggested_ticket_descripted",
   "title": "Approve AI Suggestions",
-  "description": "Approves the suggested ticket description from the triage agent and proceed to the next step",
+  "description": "Approves the suggested ticket description from the triage agent and proceeds to the next step",
   "trigger": {
     "type": "self-service",
     "operation": "DAY-2",
@@ -385,15 +458,15 @@

Correct the typo in the identifier from approve_ai_suggested_ticket_descripted
to approve_ai_suggested_ticket_description and fix the grammar in the
description field.

docs/guides/all/triage-tickets-to-coding-agents.md [333-384]

 {
-  "identifier": "approve_ai_suggested_ticket_descripted",
+  "identifier": "approve_ai_suggested_ticket_description",
   "title": "Approve AI Suggestions",
-  "description": "Approves the suggested ticket description from the triage agent and proceed to the next step",
+  "description": "Approves the suggested ticket description from the triage agent and proceeds to the next step",
   "trigger": {
     "type": "self-service",
     "operation": "DAY-2",
     "userInputs": {
       "properties": {
         "decision": {
           "type": "string",
           "title": "Decision",
           "enum": [
             "Approve & Proceed",
             "Reject"
           ],
           "icon": "DefaultProperty",
           "enumColors": {
             "Approve & Proceed": "green",
             "Reject": "red"
           }
         }
       },
       "required": [
         "decision"
       ],
       "order": [
         "title_section",
         "decision"
       ],
       "titles": {
         "title_section": {
           "title": "Approve to apply the AI's suggested description and mark as ready, or reject to keep current state."
         }
       }
     },
     "blueprintIdentifier": "jira_ticket"
   },
   "invocationMethod": {
     "type": "UPSERT_ENTITY",
     "blueprintIdentifier": "jira_ticket",
     "mapping": {
       "identifier": "{{ .entity.identifier }}",
       "properties": {
         "description": "{{if (.inputs.decision == (\"Approve & Proceed\")) then .entity.properties.ai_suggested_description else .entity.properties.description end}}",
         "current_stage": "{{if (.inputs.decision == (\"Approve & Proceed\")) then \"Approved\" else .entity.properties.current_stage end}}",
         "confidence_score": 95
       }
     }
   },
   "requiredApproval": false
 }

[Suggestion processed]

Suggestion importance[1-10]: 5

__

Why: The suggestion correctly identifies a typo in the identifier and a grammatical error in the description, improving the correctness and professionalism of the guide's code snippet.

Low
Fix trailing space in code block
Suggestion Impact:The trailing space inside the backticked action name was corrected by removing it.

code diff:

-1. If the AI suggested improvements, use the `Approve AI Suggestions` action to review and approve the changes
-2. If you want to request refinements, use the `Retry AI Suggestions `action to provide feedback
-
-<img src="/img/guides/ai-triage-test-workflow.png" border="1px" width="80%" />
+1. If the AI suggested improvements, use the `Approve AI Suggestions` action to review and approve the changes.
+2. If you want to request refinements, use the `Retry AI Suggestions `action to provide feedback.
+
+    <img src="/img/guides/ai-triage-test-workflow.png" border="1px" width="80%" />

Remove the trailing space within the backticks for the Retry AI Suggestions
action name.

docs/guides/all/triage-tickets-to-coding-agents.md [643]

-If you want to request refinements, use the `Retry AI Suggestions `action to provide feedback
+If you want to request refinements, use the `Retry AI Suggestions` action to provide feedback

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 3

__

Why: The suggestion correctly points out a minor formatting error (a trailing space in a code block) that improves the guide's professionalism and prevents potential copy-paste issues.

Low
  • Update

@aws-amplify-eu-west-1
Copy link

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-2945.d2ngvl90zqbob8.amplifyapp.com

Copy link
Contributor

@sivanel97 sivanel97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left some comments on the styling :)


This guide demonstrates how to implement an AI-powered triage system in Port that automatically evaluates incoming Jira tickets, enriches them with missing details, and ensures only well-defined tasks reach your coding agents.

<img src="/img/guides/ai-triage-workflow.png" alt="Workflow diagram" border="1px" width="100%" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't see the image on Amplify, I'm pretty sure it's just a wrong name :) or maybe you forgot to add the image?

Comment on lines 170 to 172
1. Open the newly created `Ticket`
2. Click on `+ Scorecard`
3. Click on the `{...} Edit JSON` button
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same :)

link: "/guides/all/auto-remediate-insecure-cloud-resources-with-ai",
},
{
title: "Triage tickets to coding agents",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should describe this "triage tickets to coding agents" as a use case inside the guide, but the guide is actually "Improve specifications with Port AI"


### Create Jira ticket blueprint

First, we need to create a Jira ticket blueprint that includes properties for tracking AI readiness and triage status.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would explain that we need a blueprint to store the different tickets (also lets call ti "Features"). If you already have Jira installed, we shoudl mention what fields we are adding maybe


5. Click `Create` to save the agent

:::tip MCP Enhanced Capabilities
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lets make it a default/shared component as we are repeating ourselves

```
</details>

:::tip Customize coding agent integration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did we say somewehre that you can trigger other coding agents just as well? I missed it

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes it's in the guide

Copy link
Contributor

@sivanel97 sivanel97 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM :)

@sivanel97 sivanel97 merged commit 213b626 into main Oct 28, 2025
5 checks passed
@sivanel97 sivanel97 deleted the task_t3ex5w/triage_tickets_to_coding_agents_guide branch October 28, 2025 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants