Skip to content

[Extension]: Add gh-triage #4339

Description

@arrrrny

Extension ID

gh-triage

Extension Name

GitHub Issue Triage

Version

1.0.0

Description

Fetch open GitHub issues, classify each as bug or feature, route bugs to the bug workflow and features to speckit.specify, and label each issue with the correct triage labels.

Author

arrrrny

Repository URL

https://github.com/arrrrny/speckit-extensions

Download URL

https://github.com/arrrrny/speckit-extensions/releases/download/gh-triage-v1.0.0/gh-triage.zip

License

MIT

Homepage (optional)

https://github.com/arrrrny/speckit-extensions

Documentation URL (optional)

https://github.com/arrrrny/speckit-extensions/blob/main/gh-triage/README.md

Changelog URL (optional)

https://github.com/arrrrny/speckit-extensions/blob/main/gh-triage/CHANGELOG.md

Required Spec Kit Version

=0.9.0

Required Tools (optional)

  • gh (required)

Number of Commands

1

Number of Hooks (optional)

0

Tags

triage, github, workflow, automation, bug, feature

Key Features

  • Batch-fetch all open GitHub issues for a repo
  • Classify each issue as bug or feature (labels, keywords, or full-text read)
  • Label every issue with configurable triage labels (opt-out, on by default)
  • Route bugs to the bug workflow (bug.fetch → bug.assess → bug.fix/pr) and features to speckit.specify
  • Safe by default: assess/labels only; auto_fix: true opt-in to run bug.fix / bug.pr
  • Dependency-light engine (gh + jq only)

Testing Checklist

  • Extension installs successfully via download URL
  • All commands execute without errors
  • Documentation is complete and accurate
  • No security vulnerabilities identified
  • Tested on at least one real project

Submission Requirements

  • Valid extension.yml manifest included
  • README.md with installation and usage instructions
  • LICENSE file included
  • GitHub release created with version tag
  • All command files exist and are properly formatted
  • Extension ID follows naming conventions (lowercase-with-hyphens)

Testing Details

Tested on:

  • macOS 15 with Spec Kit v1.0.1 (via specify extension add --dev gh-triage)

Test scenarios:

  1. Installed the extension into a GitHub-backed project.
  2. Ran /speckit.gh-triage.triage --dry-run to preview labels.
  3. Ran the triage against a real repo; issues were labeled and bugs routed to the bug workflow.
  4. Verified gh-triage.zip downloads and installs from the release URL.

Example Usage

# Install from the release
specify extension add gh-triage --from https://github.com/arrrrny/speckit-extensions/releases/download/gh-triage-v1.0.0/gh-triage.zip

# Then, inside a GitHub-backed project:
/speckit.gh-triage.triage                 # triage all open issues
/speckit.gh-triage.triage --repo owner/repo
/speckit.gh-triage.triage --limit 10
/speckit.gh-triage.triage --dry-run      # preview labels, apply nothing

Proposed Catalog Entry

{
  "gh-triage": {
    "name": "GitHub Issue Triage",
    "id": "gh-triage",
    "description": "Fetch open GitHub issues, classify each as bug or feature, route bugs to the bug workflow (assess/fix/pr) and features to speckit.specify, and label each issue with the correct triage labels (on by default, read from config)",
    "author": "arrrrny",
    "version": "1.0.0",
    "download_url": "https://github.com/arrrrny/speckit-extensions/releases/download/gh-triage-v1.0.0/gh-triage.zip",
    "repository": "https://github.com/arrrrny/speckit-extensions",
    "homepage": "https://github.com/arrrrny/speckit-extensions",
    "documentation": "https://github.com/arrrrny/speckit-extensions/blob/main/gh-triage/README.md",
    "changelog": "https://github.com/arrrrny/speckit-extensions/blob/main/gh-triage/CHANGELOG.md",
    "license": "MIT",
    "category": "integration",
    "effect": "read-write",
    "requires": {
      "speckit_version": ">=0.9.0",
      "tools": [
        { "name": "gh", "required": true }
      ]
    },
    "provides": {
      "commands": 1,
      "hooks": 0
    },
    "tags": ["triage", "github", "workflow", "automation", "bug", "feature"],
    "verified": false,
    "downloads": 0,
    "stars": 0,
    "created_at": "2026-08-26T00:00:00Z",
    "updated_at": "2026-08-26T00:00:00Z"
  }
}

Additional Context

Hosted in a Spec Kit extensions monorepo (arrrrny/speckit-extensions) where each extension lives in its own top-level directory. gh-triage depends on the bundled bug extension (requires its speckit.bug.* commands). The release zip gh-triage.zip wraps the gh-triage/ folder so the CLI auto-detects extension.yml on install.

This submission was prepared with assistance from Kimi Code (AI agent).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions