Skip to content

Add agentic workflow issue-triage-agent - #38

Merged
NeckBeardPrince merged 1 commit into
mainfrom
add-workflow-issue-triage-agent-9053
Feb 24, 2026
Merged

Add agentic workflow issue-triage-agent#38
NeckBeardPrince merged 1 commit into
mainfrom
add-workflow-issue-triage-agent-9053

Conversation

@NeckBeardPrince

Copy link
Copy Markdown
Owner

Add agentic workflow issue-triage-agent

Copilot AI review requested due to automatic review settings February 24, 2026 21:12
@NeckBeardPrince
NeckBeardPrince merged commit 91115b2 into main Feb 24, 2026
@NeckBeardPrince
NeckBeardPrince deleted the add-workflow-issue-triage-agent-9053 branch February 24, 2026 21:12
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
actions/actions/checkout de0fac2e4500dabe0009e67214ff5f5447ce83dd 🟢 6.2
Details
CheckScoreReason
Maintained🟢 45 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 4
Code-Review🟢 10all changesets reviewed
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Packaging⚠️ -1packaging workflow not detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
Security-Policy🟢 9security policy file detected
Branch-Protection🟢 6branch protection is not maximal on development and all release branches
SAST🟢 8SAST tool detected but not run on all commits
actions/actions/download-artifact 018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 🟢 6.1
Details
CheckScoreReason
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Code-Review🟢 10all changesets reviewed
Maintained🟢 1017 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Packaging⚠️ -1packaging workflow not detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 1dependency not pinned by hash detected -- score normalized to 1
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 9SAST tool detected but not run on all commits
actions/actions/github-script ed597411d8f924073f98dfc5c65a23a2325f34cd 🟢 7.7
Details
CheckScoreReason
Maintained🟢 1013 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 10all changesets reviewed
Binary-Artifacts🟢 10no binaries found in the repo
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies⚠️ 1dependency not pinned by hash detected -- score normalized to 1
Token-Permissions🟢 9detected GitHub workflow tokens with excessive permissions
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
SAST🟢 10SAST tool is run on all commits
actions/actions/upload-artifact b7c566a772e6b6bfb58ed0dc250532a479d7789f 🟢 6.2
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 1027 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Packaging⚠️ -1packaging workflow not detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Binary-Artifacts🟢 10no binaries found in the repo
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Pinned-Dependencies⚠️ 1dependency not pinned by hash detected -- score normalized to 1
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 10SAST tool is run on all commits
actions/github/gh-aw/actions/setup fad43e3c91a4e1d43e458f68e96574127934e7d1 UnknownUnknown

Scanned Files

  • .github/workflows/issue-triage-agent.lock.yml

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds a gh-aw/Copilot-based “Issue Triage Agent” workflow to automatically label (and comment on) unlabeled issues, along with shared prompt/reporting guidance for consistent output formatting.

Changes:

  • Introduces issue-triage-agent workflow manifest and its compiled .lock.yml workflow.
  • Adds shared reporting guidelines used by the agent prompt.
  • Adds a shared “mood” import file for prompt composition.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 6 comments.

File Description
.github/workflows/shared/reporting.md Adds markdown/report structure guidance intended to be runtime-imported into agent prompts.
.github/workflows/shared/mood.md Adds a shared prompt import file (currently a placeholder).
.github/workflows/issue-triage-agent.md Defines the agentic triage workflow prompt/manifest, tools, and safe-output allowlists.
.github/workflows/issue-triage-agent.lock.yml Auto-generated compiled workflow implementing the manifest with pinned actions, safe-outputs config, and runtime-import wiring.

toolsets: [issues, labels]
safe-outputs:
add-labels:
allowed: [bug, feature, enhancement, documentation, question, help-wanted, good-first-issue]

Copilot AI Feb 24, 2026

Copy link

Choose a reason for hiding this comment

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

The workflow instructions and label list include community, but safe-outputs.add-labels.allowed does not. If the agent selects community, the safe-outputs validation will reject it and the triage action will fail. Either add community to the allowed list (and ensure the repo label exists) or remove community from the instructions/label definitions for consistency.

Suggested change
allowed: [bug, feature, enhancement, documentation, question, help-wanted, good-first-issue]
allowed: [bug, feature, enhancement, documentation, question, help-wanted, good-first-issue, community]

Copilot uses AI. Check for mistakes.

</details>

**References**: [Triage run §{run_id}](https://github.com/github/gh-aw/actions/runs/{run_id})

Copilot AI Feb 24, 2026

Copy link

Choose a reason for hiding this comment

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

The comment template hardcodes the workflow run link to https://github.com/github/gh-aw/..., which will point to the wrong repository when this runs elsewhere. It also doesn't match the shared/reporting.md guidance for formatting run references. Use the current repo/run placeholders (e.g., repository + run_id from context) so links resolve correctly.

Suggested change
**References**: [Triage run §{run_id}](https://github.com/github/gh-aw/actions/runs/{run_id})
**References**: [Triage run §{run_id}](https://github.com/{repository}/actions/runs/{run_id})

Copilot uses AI. Check for mistakes.
@@ -0,0 +1 @@
. No newline at end of file

Copilot AI Feb 24, 2026

Copy link

Choose a reason for hiding this comment

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

This file is imported into the agent prompt, but it currently contains only a single .. That adds noise to the prompt without conveying guidance, and may confuse prompt reviewers about its purpose. Either replace it with actual "mood"/tone guidance, or remove the import and delete this file.

Suggested change
.
# Assistant mood and tone for `howtfdoi`
- Be concise, direct, and highly practical. Prioritize immediately usable CLI commands and short explanations.
- Assume the user is comfortable with terminals, Go, and Unix-like environments; avoid over-explaining basics.
- Prefer one or a few concrete command examples over long conceptual discussions.
- When suggesting commands:
- Use safe defaults.
- Call out destructive or risky operations explicitly and suggest safer alternatives when possible.
- Use plain text or markdown formatting appropriate for terminals (code blocks, lists). Do not use emojis.
- Match the project style: clear, minimal, and focused on helping users solve their problem quickly.
- If there is uncertainty, state it briefly and suggest how the user can verify the behavior (e.g., `--dry-run`, test files).

Copilot uses AI. Check for mistakes.
Comment on lines +5 to +13
## Report Structure Guidelines

### 1. Header Levels
**Use h3 (###) or lower for all headers in your issue report to maintain proper document hierarchy.**

When creating GitHub issues or discussions:
- Use `###` (h3) for main sections (e.g., "### Test Summary")
- Use `####` (h4) for subsections (e.g., "#### Device-Specific Results")
- Never use `##` (h2) or `#` (h1) in reports - these are reserved for titles

Copilot AI Feb 24, 2026

Copy link

Choose a reason for hiding this comment

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

This guidance doc is runtime-imported into the agent prompt, but it uses ## headings while also instructing the agent to never use ##/# in reports. Keeping this doc's own headings at ###/lower, or explicitly scoping the rule to "generated reports/comments only", would reduce contradictory signals in the prompt.

Copilot uses AI. Check for mistakes.
Comment on lines +327 to +332
{"add_comment":{"max":1},"add_labels":{"allowed":["bug","feature","enhancement","documentation","question","help-wanted","good-first-issue"],"max":3},"missing_data":{},"missing_tool":{},"noop":{"max":1}}
GH_AW_SAFE_OUTPUTS_CONFIG_EOF
cat > /opt/gh-aw/safeoutputs/tools.json << 'GH_AW_SAFE_OUTPUTS_TOOLS_EOF'
[
{
"description": "Add a comment to an existing GitHub issue, pull request, or discussion. Use this to provide feedback, answer questions, or add information to an existing conversation. For creating new items, use create_issue, create_discussion, or create_pull_request instead. IMPORTANT: Comments are subject to validation constraints enforced by the MCP server - maximum 65536 characters for the complete comment (including footer which is added automatically), 10 mentions (@username), and 50 links. Exceeding these limits will result in an immediate error with specific guidance. NOTE: By default, this tool requires discussions:write permission. If your GitHub App lacks Discussions permission, set 'discussions: false' in the workflow's safe-outputs.add-comment configuration to exclude this permission. CONSTRAINTS: Maximum 1 comment(s) can be added.",

Copilot AI Feb 24, 2026

Copy link

Choose a reason for hiding this comment

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

The compiled workflow enforces very low Safe Outputs limits (add_comment.max: 1 and add_labels.max: 3). That conflicts with the manifest goal of triaging (label + comment) each unlabeled issue, and will cap the run to at most a few actions or cause failures. Increase these limits (or change the workflow to intentionally handle only N issues per run) and re-run gh aw compile so the lock file matches.

Suggested change
{"add_comment":{"max":1},"add_labels":{"allowed":["bug","feature","enhancement","documentation","question","help-wanted","good-first-issue"],"max":3},"missing_data":{},"missing_tool":{},"noop":{"max":1}}
GH_AW_SAFE_OUTPUTS_CONFIG_EOF
cat > /opt/gh-aw/safeoutputs/tools.json << 'GH_AW_SAFE_OUTPUTS_TOOLS_EOF'
[
{
"description": "Add a comment to an existing GitHub issue, pull request, or discussion. Use this to provide feedback, answer questions, or add information to an existing conversation. For creating new items, use create_issue, create_discussion, or create_pull_request instead. IMPORTANT: Comments are subject to validation constraints enforced by the MCP server - maximum 65536 characters for the complete comment (including footer which is added automatically), 10 mentions (@username), and 50 links. Exceeding these limits will result in an immediate error with specific guidance. NOTE: By default, this tool requires discussions:write permission. If your GitHub App lacks Discussions permission, set 'discussions: false' in the workflow's safe-outputs.add-comment configuration to exclude this permission. CONSTRAINTS: Maximum 1 comment(s) can be added.",
{"add_comment":{"max":50},"add_labels":{"allowed":["bug","feature","enhancement","documentation","question","help-wanted","good-first-issue"],"max":50},"missing_data":{},"missing_tool":{},"noop":{"max":1}}
GH_AW_SAFE_OUTPUTS_CONFIG_EOF
cat > /opt/gh-aw/safeoutputs/tools.json << 'GH_AW_SAFE_OUTPUTS_TOOLS_EOF'
[
{
"description": "Add a comment to an existing GitHub issue, pull request, or discussion. Use this to provide feedback, answer questions, or add information to an existing conversation. For creating new items, use create_issue, create_discussion, or create_pull_request instead. IMPORTANT: Comments are subject to validation constraints enforced by the MCP server - maximum 65536 characters for the complete comment (including footer which is added automatically), 10 mentions (@username), and 50 links. Exceeding these limits will result in an immediate error with specific guidance. NOTE: By default, this tool requires discussions:write permission. If your GitHub App lacks Discussions permission, set 'discussions: false' in the workflow's safe-outputs.add-comment configuration to exclude this permission. CONSTRAINTS: Maximum 50 comment(s) can be added.",

Copilot uses AI. Check for mistakes.
mkdir -p /tmp/gh-aw/safeoutputs
mkdir -p /tmp/gh-aw/mcp-logs/safeoutputs
cat > /opt/gh-aw/safeoutputs/config.json << 'GH_AW_SAFE_OUTPUTS_CONFIG_EOF'
{"add_comment":{"max":1},"add_labels":{"allowed":["bug","feature","enhancement","documentation","question","help-wanted","good-first-issue"],"max":3},"missing_data":{},"missing_tool":{},"noop":{"max":1}}

Copilot AI Feb 24, 2026

Copy link

Choose a reason for hiding this comment

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

community is described as a possible label in the manifest, but the compiled Safe Outputs allowlist here omits it. If community is intended, it needs to be added to the safe-outputs allowlist (and then recompiled) so the label action isn't rejected at runtime.

Suggested change
{"add_comment":{"max":1},"add_labels":{"allowed":["bug","feature","enhancement","documentation","question","help-wanted","good-first-issue"],"max":3},"missing_data":{},"missing_tool":{},"noop":{"max":1}}
{"add_comment":{"max":1},"add_labels":{"allowed":["bug","feature","enhancement","documentation","question","help-wanted","good-first-issue","community"],"max":3},"missing_data":{},"missing_tool":{},"noop":{"max":1}}

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants