GitHub Issue Agent (github-issue-agent)
Routing Directive: USE ONLY for durable repository bugs, execution friction (T1-T3), map debt, and architectural improvements. DO NOT USE for temporary intra-session checklists (use task-agent instead).
The github-issue-agent skill provides a safe, standardized interface for querying, searching, creating, commenting on, and validating GitHub Issues stemming from agent execution friction, map debt, bugs, and system improvements.
Dry-Run Default Execution Contract
[!IMPORTANT]
Safety First: By default, all issue-modifying operations (issue creation, commenting, label edits) execute in dry-run / payload-generation mode (execute=False).
No live mutation occurs unless execute=True is explicitly passed and all safety gates pass.
Before any GitHub issue is created or updated, the request passes through three mandatory security and quality gates:
- Secret Redaction Gate (
redaction_gate.py): Scans titles and bodies for tokens, API keys, private keys, or credentials. Blocks execution if detected.
- Taxonomy Validation Gate (
gh_issue_taxonomy_validate.py): Enforces issue-taxonomy.json constraints. Requires type:*, tier:*, source:*, risk:*, AND location (area:* OR plugin:*). gh_issue_create.py auto-appends status:needs-triage if the caller didn't already include a status:* label — every created issue gets a sequencing signal (status:needs-triage/ready/blocked/needs-spec/accepted-debt/duplicate), not just tier/risk categorization, so open issues can be sequenced without manually re-deriving priority later.
- Evidence Quality Body Validation Gate (
body_validator.py): Requires standard structured markdown sections (## Summary, ## Observed Behavior, ## Expected Behavior, ## Evidence, ## Impact).
Operation Catalog
1. create-friction-issue
Scaffolds and submits (or outputs payload for) a friction issue resulting from agent execution friction or tool failure.
- Helper Script:
plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_create.py
- Default Labels Required:
type:friction, tier:1-friction (or tier:2-structural / tier:3-architecture), source:agent, risk:low (or appropriate risk level), plus location (area:* or plugin:*).
- Input Parameters:
title: Short, clear summary of root-cause friction.
body: Markdown content conforming to required sections.
labels: List of taxonomy labels matching issue-taxonomy.json.
execute: Boolean (False for dry-run payload generation, True for live creation via gh).
2. create-map-debt-issue
Converts an entry from map-debt.md into a formal tracked GitHub issue.
- Helper Script:
plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_create.py
- Default Labels Required:
type:map-debt, tier:*, source:agent, risk:*, location (area:* or plugin:*).
3. create-bug-issue
Logs a verified bug or code defect identified during execution or test failure.
- Helper Script:
plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_create.py
- Default Labels Required:
type:bug, tier:*, source:agent, risk:*, location (area:* or plugin:*).
4. search-related-issues
Searches open and closed issues for existing root-cause items to prevent duplicate issues.
- Helper Script:
plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_search.py
- Input Parameters:
title: Proposed issue title or keyword.
area_label: Location label (area:* or plugin:*).
file_paths: List of affected file paths.
- Output: Returns JSON object indicating if an existing root cause exists (
has_existing_root_cause), target issue number (target_issue_number), and action recommendation (comment_and_append_evidence vs create_new_issue).
5. comment-on-existing-issue
Appends additional empirical evidence, stack traces, or context to an existing issue rather than opening a duplicate.
- Helper Script:
plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_comment.py
- Input Parameters:
issue_number: GitHub issue ID.
comment_body: Markdown comment text (must pass secret redaction scan).
execute: Boolean (False for dry-run payload generation, True for live comment posting).
6. validate-issue-taxonomy
Validates a list of labels against issue-taxonomy.json.
- Helper Script:
plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_taxonomy_validate.py
- Usage: Run CLI or import
validate_taxonomy(labels: list[str]).
Taxonomy Reference
Taxonomy labels and rules are defined in plugins/dev-utils/skills/github-issue-agent/issue-taxonomy.json.
Mandatory dimensions for every issue:
type: type:bug, type:friction, type:map-debt, type:enhancement, type:documentation, type:security, type:architecture, type:test-gap
tier: tier:0-quickfix, tier:1-friction, tier:2-structural, tier:3-architecture
source: source:agent, source:human, source:script, source:test, source:review, source:migration
risk: risk:low, risk:medium, risk:high, risk:security-sensitive, risk:destructive-operation
location: Must have at least one area:* label or one plugin:* label.
1---2name: github-issue-agent3description: Agent skill for safe, dry-run-first, deduplicated, root-cause-consolidated, evidence-validated, and secret-redacted logging of repository execution friction into GitHub Issues. USE ONLY for durable repository bugs, execution friction (T1-T3), map debt, and architectural improvements. DO NOT USE for temporary intra-session checklists (use task-agent instead).4---56# GitHub Issue Agent (`github-issue-agent`)78> **Routing Directive:** USE ONLY for durable repository bugs, execution friction (T1-T3), map debt, and architectural improvements. DO NOT USE for temporary intra-session checklists (use `task-agent` instead).910The `github-issue-agent` skill provides a safe, standardized interface for querying, searching, creating, commenting on, and validating GitHub Issues stemming from agent execution friction, map debt, bugs, and system improvements.1112---1314## Dry-Run Default Execution Contract1516> [!IMPORTANT]17> **Safety First:** By default, all issue-modifying operations (issue creation, commenting, label edits) execute in **dry-run / payload-generation mode** (`execute=False`).18> No live mutation occurs unless `execute=True` is explicitly passed and all safety gates pass.1920Before any GitHub issue is created or updated, the request passes through three mandatory security and quality gates:211. **Secret Redaction Gate** (`redaction_gate.py`): Scans titles and bodies for tokens, API keys, private keys, or credentials. Blocks execution if detected.222. **Taxonomy Validation Gate** (`gh_issue_taxonomy_validate.py`): Enforces `issue-taxonomy.json` constraints. Requires `type:*`, `tier:*`, `source:*`, `risk:*`, AND location (`area:*` OR `plugin:*`). `gh_issue_create.py` auto-appends `status:needs-triage` if the caller didn't already include a `status:*` label — every created issue gets a sequencing signal (`status:needs-triage`/`ready`/`blocked`/`needs-spec`/`accepted-debt`/`duplicate`), not just tier/risk categorization, so open issues can be sequenced without manually re-deriving priority later.233. **Evidence Quality Body Validation Gate** (`body_validator.py`): Requires standard structured markdown sections (`## Summary`, `## Observed Behavior`, `## Expected Behavior`, `## Evidence`, `## Impact`).2425---2627## Operation Catalog2829### 1. `create-friction-issue`30Scaffolds and submits (or outputs payload for) a friction issue resulting from agent execution friction or tool failure.3132- **Helper Script:** `plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_create.py`33- **Default Labels Required:** `type:friction`, `tier:1-friction` (or `tier:2-structural` / `tier:3-architecture`), `source:agent`, `risk:low` (or appropriate risk level), plus location (`area:*` or `plugin:*`).34- **Input Parameters:**35 - `title`: Short, clear summary of root-cause friction.36 - `body`: Markdown content conforming to required sections.37 - `labels`: List of taxonomy labels matching `issue-taxonomy.json`.38 - `execute`: Boolean (`False` for dry-run payload generation, `True` for live creation via `gh`).3940### 2. `create-map-debt-issue`41Converts an entry from `map-debt.md` into a formal tracked GitHub issue.4243- **Helper Script:** `plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_create.py`44- **Default Labels Required:** `type:map-debt`, `tier:*`, `source:agent`, `risk:*`, location (`area:*` or `plugin:*`).4546### 3. `create-bug-issue`47Logs a verified bug or code defect identified during execution or test failure.4849- **Helper Script:** `plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_create.py`50- **Default Labels Required:** `type:bug`, `tier:*`, `source:agent`, `risk:*`, location (`area:*` or `plugin:*`).5152### 4. `search-related-issues`53Searches open and closed issues for existing root-cause items to prevent duplicate issues.5455- **Helper Script:** `plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_search.py`56- **Input Parameters:**57 - `title`: Proposed issue title or keyword.58 - `area_label`: Location label (`area:*` or `plugin:*`).59 - `file_paths`: List of affected file paths.60- **Output:** Returns JSON object indicating if an existing root cause exists (`has_existing_root_cause`), target issue number (`target_issue_number`), and action recommendation (`comment_and_append_evidence` vs `create_new_issue`).6162### 5. `comment-on-existing-issue`63Appends additional empirical evidence, stack traces, or context to an existing issue rather than opening a duplicate.6465- **Helper Script:** `plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_comment.py`66- **Input Parameters:**67 - `issue_number`: GitHub issue ID.68 - `comment_body`: Markdown comment text (must pass secret redaction scan).69 - `execute`: Boolean (`False` for dry-run payload generation, `True` for live comment posting).7071### 6. `validate-issue-taxonomy`72Validates a list of labels against `issue-taxonomy.json`.7374- **Helper Script:** `plugins/dev-utils/skills/github-issue-agent/scripts/gh_issue_taxonomy_validate.py`75- **Usage:** Run CLI or import `validate_taxonomy(labels: list[str])`.7677---7879## Taxonomy Reference8081Taxonomy labels and rules are defined in `plugins/dev-utils/skills/github-issue-agent/issue-taxonomy.json`.8283Mandatory dimensions for every issue:84- `type`: `type:bug`, `type:friction`, `type:map-debt`, `type:enhancement`, `type:documentation`, `type:security`, `type:architecture`, `type:test-gap`85- `tier`: `tier:0-quickfix`, `tier:1-friction`, `tier:2-structural`, `tier:3-architecture`86- `source`: `source:agent`, `source:human`, `source:script`, `source:test`, `source:review`, `source:migration`87- `risk`: `risk:low`, `risk:medium`, `risk:high`, `risk:security-sensitive`, `risk:destructive-operation`88- `location`: Must have at least one `area:*` label or one `plugin:*` label.