GitHub Issue Backlog Agent (github-issue-backlog-agent)
Routing Directive: USE ONLY when promoting ephemeral single-session local tasks (
tasks/*.md) into durable tracked GitHub Issues. DO NOT USE for managing local kanban boards (usetask-agentinstead) or directly creating/searching issues from execution friction (usegithub-issue-agentinstead).
The github-issue-backlog-agent skill bridges local task scratch items into durable GitHub Issues. It parses local task markdown files, constructs evidence-backed markdown bodies conforming to repository taxonomy guidelines, and invokes gh_issue_create.py in dry-run or live mode.
Safety & Security Contracts
- Dry-Run Execution Default (
execute=False): By default, callingtask_to_issue_bridge.pyoutputs a structured JSON payload detailing the issue title, body, and labels without creating a live GitHub issue. Live creation requires--execute. - Taxonomy Enforcement: Every escalated issue is validated against
issue-taxonomy.jsonrules (type:*,tier:*,source:*,risk:*, andarea:*/plugin:*). - Secret Redaction: Both title and body undergo secret scanning via
redaction_gate.pyprior to payload generation or issue submission.
Usage catalog
Promote Task Scratch Item to GitHub Issue
- Helper Script:
plugins/dev-utils/skills/github-issue-backlog-agent/scripts/task_to_issue_bridge.py - CLI Usage:
# Dry-run payload preview: python3 plugins/dev-utils/skills/github-issue-backlog-agent/scripts/task_to_issue_bridge.py \ --task-path tasks/backlog/0042-fix-deadlock.md \ --labels "area:dev-utils,tier:2-structural" # Live issue creation: python3 plugins/dev-utils/skills/github-issue-backlog-agent/scripts/task_to_issue_bridge.py \ --task-path tasks/backlog/0042-fix-deadlock.md \ --labels "area:dev-utils,tier:2-structural" \ --execute
Python API Interface
from pathlib import Path
from plugins.dev_utils.skills.github_issue_backlog_agent.scripts.task_to_issue_bridge import promote_task_to_issue
result = promote_task_to_issue(
task_path=Path("tasks/backlog/0042-fix-deadlock.md"),
extra_labels=["area:dev-utils", "tier:2-structural"],
execute=False, # Dry-run default
)