home / skills / dyad-sh / dyad / fix-issue
This skill helps you create a clear plan to fix a GitHub issue and implement it locally, accelerating debugging and validation.
npx playbooks add skill dyad-sh/dyad --skill fix-issueReview the files below or copy the command above to add this skill to your agents.
---
name: dyad:fix-issue
description: Create a plan to fix a GitHub issue, then implement it locally.
---
# Fix Issue
Create a plan to fix a GitHub issue, then implement it locally.
## Arguments
- `$ARGUMENTS`: GitHub issue number or URL.
## Instructions
1. **Fetch the GitHub issue:**
First, extract the issue number from `$ARGUMENTS`:
- If `$ARGUMENTS` is a number (e.g., `123`), use it directly
- If `$ARGUMENTS` is a URL (e.g., `https://github.com/owner/repo/issues/123`), extract the issue number from the path
Then fetch the issue:
```
gh issue view <issue-number> --json title,body,comments,labels,assignees
```
2. **Sanitize the issue content:**
Run the issue body through the sanitization script to remove HTML comments, invisible characters, and other artifacts:
```
printf '%s' "$ISSUE_BODY" | python3 .claude/skills/fix-issue/scripts/sanitize_issue_markdown.py
```
This removes:
- HTML comments (`<!-- ... -->`)
- Zero-width and invisible Unicode characters
- Excessive blank lines
- HTML details/summary tags (keeping content)
3. **Analyze the issue:**
- Understand what the issue is asking for
- Identify the type of work (bug fix, feature, refactor, etc.)
- Note any specific requirements or constraints mentioned
4. **Explore the codebase:**
- Search for relevant files and code related to the issue
- Understand the current implementation
- Identify what needs to change
- Look at existing tests to understand testing patterns used in the project
5. **Determine testing approach:**
Consider what kind of testing is appropriate for this change:
- **E2E test**: For user-facing features or complete user flows. Prefer this when the change involves UI interactions or would require mocking many dependencies to unit test.
- **Unit test**: For pure business logic, utility functions, or isolated components.
- **No new tests**: Only for trivial changes (typos, config tweaks, etc.)
Note: Per project guidelines, avoid writing many E2E tests for one feature. Prefer one or two E2E tests with broad coverage. If unsure, ask the user for guidance on testing approach.
**IMPORTANT for E2E tests:** You MUST run `npm run build` before running E2E tests. E2E tests run against the built application binary. If you make any changes to application code (anything outside of `e2e-tests/`), you MUST re-run `npm run build` before running E2E tests, otherwise you'll be testing the old version.
6. **Create a detailed plan:**
Write a plan that includes:
- **Summary**: Brief description of the issue and proposed solution
- **Files to modify**: List of files that will need changes
- **Implementation steps**: Ordered list of specific changes to make
- **Testing approach**: What tests to add (E2E, unit, or none) and why
- **Potential risks**: Any concerns or edge cases to consider
7. **Execute the plan:**
If the plan is straightforward with no ambiguities or open questions:
- Proceed directly to implementation without asking for approval
- Implement the plan step by step
- Run `/dyad:pr-push` when complete
If the plan has significant complexity, multiple valid approaches, or requires user input:
- Present the plan to the user and use `ExitPlanMode` to request approval
- After approval, implement the plan step by step
- Run `/dyad:pr-push` when complete
This skill creates a concrete plan to fix a GitHub issue and then implements that plan locally. It automates fetching and sanitizing the issue, analyzing the required work, exploring the codebase, and applying changes with a recommended testing approach. The skill finishes by pushing the implemented change as a PR when appropriate.
Provide an issue number or URL and the skill fetches the issue metadata via the GitHub CLI. It sanitizes the issue body to remove comments and invisible characters, analyzes the problem to classify the work, scans the codebase for relevant files, and crafts a step-by-step implementation plan including testing guidance. For straightforward plans it applies the changes locally and prepares a PR; for ambiguous or complex plans it requests approval before proceeding.
What input format is accepted?
Either a plain issue number (e.g., 123) or a full GitHub issue URL; the skill extracts the number automatically.
When does the skill ask for approval instead of implementing?
If the plan is complex, has multiple valid approaches, or needs clarification, the skill presents the plan and requests explicit approval.
How are E2E tests handled?
E2E tests run against the built app; you must run npm run build after any application code changes and before running E2E tests.