plugins/gwt/skills/gwt-issue-resolve/SKILL.md
Resolve an existing GitHub Issue end-to-end. Analyze the issue, decide whether it should be fixed directly, merged into an existing gwt-spec issue, or promoted to a new spec issue, and continue toward resolution. Use `gwt-issue-register` for brand-new work registration.
npx skillsauth add akiojin/gwt gwt-issue-resolveInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill as the main entrypoint when the user brings a GitHub Issue and wants it progressed, not merely classified.
gwt-issue-register first.The skill must decide the execution path:
gwt-spec issueDo not require the Issue author to pre-label or pre-register the work as gwt-spec.
Use gh to inspect a GitHub Issue and:
gwt-spec label, GWT_SPEC_ID marker, or spec section structure)If the issue is already a spec issue, switch to gwt-spec-ops.
If the issue is not a spec issue:
When the Issue needs SPEC handling, use gwt-issue-search first.
Required behavior:
gh auth status is valid before any index-issues callgwt-spec Issue only when no suitable canonical SPEC existsDo not ask the user whether to use an existing or new SPEC if the repo state and search results make the answer clear.
| Prohibited | Required Alternative |
|---|---|
| "We should look into..." | "Edit path/file.ts:42 to..." |
| "There seem to be some issues" | "3 actionable items detected" |
| "This might be causing..." | "Root cause: <error from issue>" |
| "Consider fixing..." / "It looks like..." | "Action: Fix <what> in <where>" |
| "Various errors are reported" | "2 error messages extracted: <msg1>, <msg2>" |
| "Some files are involved" | "3 file references: src/a.ts:42, src/b.rs:10, src/c.py" |
| "I'll try to fix this" | "Action: <specific fix>" |
\n.gh issue comment, verify the final body does not contain accidental escaped control sequences.When posting progress updates to the issue, use:
Progress
- ...
Done
- ...
Next
- ...
Post updates at least when starting work, after meaningful progress, and when blocked or unblocked.
repo: path inside the repo (default .)issue: Issue number or URL (required)focus: codebase search narrowing (optional)max-comment-length: max characters per comment body (0 = unlimited)gh authentication for the repo host# Inspect issue (text output)
python3 "${CLAUDE_PLUGIN_ROOT}/skills/gwt-issue-resolve/scripts/inspect_issue.py" --repo "." --issue "<number>"
# Inspect issue by URL
python3 "${CLAUDE_PLUGIN_ROOT}/skills/gwt-issue-resolve/scripts/inspect_issue.py" --repo "." --issue "https://github.com/org/repo/issues/123"
# With focus area
python3 "${CLAUDE_PLUGIN_ROOT}/skills/gwt-issue-resolve/scripts/inspect_issue.py" --repo "." --issue "<number>" --focus "src/lib"
# JSON output
python3 "${CLAUDE_PLUGIN_ROOT}/skills/gwt-issue-resolve/scripts/inspect_issue.py" --repo "." --issue "<number>" --json
Verify gh authentication.
gh auth status in the repo.Resolve the Issue input.
Run inspect_issue.py to gather facts.
Already-SPEC path.
gwt-spec, or the body contains <!-- GWT_SPEC_ID:#... -->, or the body clearly follows the ## Spec / ## Plan / ## Tasks / ## TDD structure, stop generic issue handling.gwt-spec-ops with the issue number and current context.Direct-fix vs spec-needed decision.
Direct-fix path.
Spec-needed path.
gwt-issue-search before creating or updating any SPEC.gwt-spec-ops.gwt-spec Issue container through gwt-spec-register.gwt-spec-ops, which owns clarify/plan/tasks/analyze and then implementation.Produce Issue Analysis Report for non-SPEC issues before execution.
Output must use this structure:
## Issue Analysis Report: #<number>
**Issue Type:** BUG | FEATURE | ENHANCEMENT | DOCUMENTATION | QUESTION | UNCLASSIFIED
**Title:** <issue title>
**State:** OPEN | CLOSED
**Labels:** <label1>, <label2>, ...
**Assignees:** <assignee1>, <assignee2>, ...
**Execution Path:** DIRECT-FIX | EXISTING-SPEC | NEW-SPEC
Actionable items: <N>
---
### EXTRACTED CONTEXT
#### Error Messages
- `<error message 1>`
#### Stack Traces
~~~
<stack trace>
~~~
#### File References
- `path/to/file.ext:42` [EXISTS]
#### Repro Steps
<extracted Steps to Reproduce section>
#### Expected vs Actual
- **Expected:** <extracted expected behavior>
- **Actual:** <extracted actual behavior>
---
### CODEBASE MATCHES
#### M1. <file or symbol>
- **Path:** `path/to/file.ext:line`
- **Relevance:** Why this file matters
---
### ACTIONABLE
#### A1. [CATEGORY] <1-line title>
- **What:** Factual statement
- **Where:** file_path:line_number
- **Evidence:** Verbatim quote from issue or codebase
- **Action:** Specific fix or handoff action
- **Confidence:** High | Medium | Low
---
### INFORMATIONAL
#### I1. [CATEGORY] <1-line title>
- **What / Note**
---
### LINKED CONTEXT
#### Linked PRs
- PR #<number>: <title> [<state>]
#### Cross-references
- #<number>
#### Comments Summary
- <N> comments from <M> authors
- Key points: ...
---
**Summary:** <N> actionable items, <M> informational items, <K> codebase matches.
Post progress comments to the Issue.
Execution handoff or implementation.
gwt-spec-ops, then let that workflow continue end-to-end.GitHub Issue inspection and analysis tool. Fetches issue data, parses context, classifies the issue, and checks file existence.
tools
Create distinctive, production-grade terminal user interfaces. Use when building TUI components with ratatui, CLI output styling, or xterm.js terminal rendering. Triggers: 'design TUI', 'terminal UI', 'TUIデザイン', 'ターミナルUI', 'ratatui widget'
testing
Semantic search over SPEC Issues (GitHub Issue cache at ~/.gwt/cache/issues/) using vector embeddings. Use when searching for existing specs, finding related specs, checking for duplicate specs, or determining which spec owns a scope. Mandatory preflight before gwt-discussion when the work may need a SPEC owner. Use when user says 'search specs', 'find related specs', 'check for duplicate specs', or asks which spec owns a scope.
testing
Mandatory preflight before gwt-discussion, gwt-register-issue, and gwt-fix-issue. Use proactively before creating any SPEC or Issue owner or before reusing an existing one. Searches SPEC Issues, GitHub Issues, and project files via ChromaDB. Triggers: 'search', 'find related', 'check duplicates'.
business
Use when the user wants to register new work from a bug report, idea, or task description and an existing GitHub Issue number is not already known.