Skip to content

ci: add automated issue labeling workflow#2359

Open
yonib05 wants to merge 3 commits into
strands-agents:mainfrom
yonib05:feat/issue-labeler
Open

ci: add automated issue labeling workflow#2359
yonib05 wants to merge 3 commits into
strands-agents:mainfrom
yonib05:feat/issue-labeler

Conversation

@yonib05
Copy link
Copy Markdown
Member

@yonib05 yonib05 commented May 28, 2026

Description

Adds automated issue labeling using the shared issue-labeler action from devtools. Three independent labelers run in parallel on every issue open/edit:

  1. Area — classifies by technical subsystem (area-provider, area-mcp, area-tool, etc.)
  2. Type — classifies as bug, enhancement, question, or chore (mutually exclusive)
  3. Language — identifies whether the issue targets Python or TypeScript

Each labeler has its own config in .github/labelers/ defining the valid label set and classification instructions. The LLM output is validated against these configs so it can only apply labels that exist in the allowlist.

Related Issues

Depends on strands-agents/devtools#55

Type of Change

New feature

Testing

  • Tested classification logic locally against ~488 open issues
  • Verified allowlist validation rejects arbitrary LLM output
  • Confirmed parallel job execution doesn't cause label conflicts

Checklist

  • I have read the CONTRIBUTING document
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Adds three independent labelers that run in parallel on issue open/edit:
- area: classifies by technical subsystem (area-provider, area-mcp, etc.)
- type: classifies as bug/enhancement/question/chore
- language: identifies python vs typescript

Uses the shared issue-labeler action from devtools which validates LLM
output against the hardcoded label allowlists in .github/labelers/.
Comment thread .github/workflows/issue-labeler.yml Outdated
Comment thread .github/workflows/issue-labeler.yml
Comment thread .github/labelers/area.yml
Comment thread .github/labelers/language.yml
@github-actions
Copy link
Copy Markdown
Contributor

Assessment: Comment

Clean and well-structured workflow addition that follows existing repo patterns (@main pinning for devtools actions, minimal permissions). The configs are well-organized and the label taxonomy covers the repo's feature areas comprehensively.

Review Themes
  • Trigger noise: The edited event could cause redundant re-classification on trivial issue edits. Consider guarding against re-labeling already-classified issues.
  • Disambiguation guidance: The LLM instructions are minimal—adding hints for commonly confused label pairs could improve classification accuracy.
  • Explicitness: The label-area job intentionally omits max_labels but this isn't immediately obvious without a comment.

Nice work overall—the parallel job design and sparse checkout are thoughtful efficiency choices.

- Drop edited trigger to avoid redundant re-classification on minor edits
- Add comment clarifying max_labels is intentionally omitted for area labels
- Add disambiguation hints for commonly confused label pairs (mcp vs tool,
  provider vs async, hooks vs others)
- Add guidance for cross-SDK language issues
@github-actions
Copy link
Copy Markdown
Contributor

Assessment: Approve

All 4 suggestions from the previous review have been addressed cleanly. The updated PR is well-structured, with appropriate trigger scoping (opened only), clear disambiguation instructions for the LLM classifier, and good documentation of design intent (the max_labels comment).

Changes Verified
  • Trigger: Reduced from [opened, edited] to [opened] — eliminates unnecessary re-classification cost
  • Explicitness: Added # max_labels omitted comment documenting intent
  • Disambiguation: Added 3 hints for commonly confused label pairs in area.yml
  • Tiebreaker: Added preference guidance and "no label" escape hatch in language.yml

No remaining concerns — ready to merge once the devtools dependency (strands-agents/devtools#55) is merged.

@yonib05 yonib05 changed the title Add automated issue labeling workflow ci: add automated issue labeling workflow May 28, 2026
@yonib05 yonib05 added area-community Related to community and contributor health chore Maintenance tasks, dependency updates, CI changes, refactoring with no user-facing impact labels May 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-community Related to community and contributor health chore Maintenance tasks, dependency updates, CI changes, refactoring with no user-facing impact size/m

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant