Skip to content

Phase 1: Issue Triage gh-aw workflow #232

Description

@don-petry

Context

Part of the GitHub Agentic Workflows rollout — Discussion #228.

Depends on: #230 (Phase 0 — foundation must be merged first)

Goal

New issues across the org are auto-labeled and triaged within 60 seconds of being opened.

TDD cycle

Step 1 — Write scenario spec first

Create tests/aw/issue-triage/scenarios.md before writing any workflow markdown. It must cover:

  • Input: issue titled "Login button is broken", no labels → Expected: labels bug + needs-triage, comment asking for repro steps
  • Input: issue titled "Add dark mode support" → Expected: label enhancement, comment acknowledging feature request
  • Input: issue titled "How do I configure X?" → Expected: label question, comment with pointer to docs
  • Edge: issue already has 2+ labels → workflow is a no-op (no changes, no comment)

Step 2 — Write the workflow

Create .github/workflows/issue-triage.md with:

  • Trigger: issues: [opened, reopened]
  • Engine: Claude (claude-sonnet-4-6)
  • Permissions: issues: read (safe-output handles writes)
  • Instructions: classify issue, apply ≤3 labels from [bug, enhancement, documentation, question, needs-triage, good-first-issue, security], post one welcoming comment with the single most important clarifying question for the issue type. Skip if issue already has 2+ labels.
  • Output: staged initially

Step 3 — Compile and validate

gh aw compile must pass in CI.

Step 4 — Staged smoke test

Run gh aw run issue-triage --staged against a real test issue and verify the output artifact matches the scenario spec. Document result in the PR description.

Step 5 — Go live

Remove output: staged, update PR, merge.

Acceptance Criteria

  • tests/aw/issue-triage/scenarios.md exists and is written before the workflow
  • .github/workflows/issue-triage.md compiles cleanly
  • Staged run output reviewed and matches all scenario spec cases
  • Live run verified on a non-critical trigger
  • Behavior documented in docs/aw/issue-triage.md
  • All changes via PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    dev-leadFor dev-lead agent pickup

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions