home / skills / dyad-sh / dyad / fix-issue

fix-issue skill

/.claude/skills/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-issue

Review the files below or copy the command above to add this skill to your agents.

Files (13)
SKILL.md
3.3 KB
---
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

Overview

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.

How this skill works

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.

When to use it

  • You have a GitHub issue and want a reproducible, executable fix plan plus local implementation.
  • The change requires codebase exploration to map impact and list files to modify.
  • You need guidance on whether to write E2E, unit, or no tests for the change.
  • You want an automated local implementation and PR push for small-to-medium scoped issues.

Best practices

  • Always pass a numeric issue ID or full issue URL so the skill can fetch metadata reliably.
  • Review the sanitized issue text before implementation to catch removed context.
  • Prefer a single E2E test for user-facing flows and unit tests for isolated logic.
  • Re-run npm run build before executing E2E tests when application code changes.
  • Stop and request approval (ExitPlanMode) when multiple valid approaches exist or risk is high.

Example use cases

  • Fix a UI bug reported in an issue: plan, update components, add one E2E that covers the user flow, and push a PR.
  • Implement a small feature: identify affected files, add unit tests for core logic, and open a PR.
  • Address a broken utility or export: locate the utility, write a unit test, and apply the fix with minimal risk.
  • Triage a vague issue: sanitize content, create a clarifying plan with questions, and request approval before coding.

FAQ

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.