/troubleshooting
Diagnose and resolve common issues during spec-driven development and implementation. Learn strategies for handling spec-reality divergence, dependency blocks, unclear requirements, and other execution challenges.
$ npx -y skills add jasonkneen/kiro --skill troubleshooting --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/troubleshooting
Context preview
The summary Claude sees to decide when to auto-load this skill.
Diagnose and resolve common issues during spec-driven development and implementation. Learn strategies for handling spec-reality divergence, dependency blocks, unclear requirements, and other execution challenges.
SKILL.md
troubleshooting.SKILL.mdname: troubleshooting
description: Diagnose and resolve common issues during spec-driven development and implementation. Learn strategies for handling spec-reality divergence, dependency blocks, unclear requirements, and other execution challenges.
license: MIT
compatibility: Claude Code, Cursor, VS Code, Windsurf
metadata:
category: methodology
complexity: intermediate
author: Kiro Team
version: "1.0.0"
Troubleshooting
Diagnose and resolve common problems that arise during spec-driven development and feature implementation.
When to Use This Skill
Use troubleshooting strategies when:
- Implementation doesn't match spec expectations
- Tasks are blocked by dependencies
- Requirements are unclear during coding
- Tests are failing or hard to write
- Performance doesn't meet requirements
- Integration problems occur
Issue 1: Spec and Reality Diverge
Symptoms
- Code structure doesn't match spec assumptions
- APIs are unavailable or deprecated
- Performance differs from expectations
- Integration points work differently than specified
Resolution
**Immediate Actions:** 1. Document the gap exactly 2. Assess impact (minor detail vs fundamental issue) 3. Stop implementing until you understand implications
**Resolution Options:**
**Option 1: Update Spec (Minor Deviations)**
If difference is minor and doesn't affect requirements:
1. Update design section with actual approach
2. Adjust affected tasks
3. Document why change was needed
4. Continue implementation
**Option 2: Redesign (Major Deviations)**
If core assumptions are wrong:
1. Return to design phase
2. Incorporate new understanding
3. Re-validate against requirements
4. Create new task breakdown
5. Restart with corrected plan
**Option 3: Adjust Requirements (Fundamental Issues)**
If requirements can't be met as stated:
1. Document why requirements aren't achievable
2. Propose alternative approach
3. Get stakeholder approval
4. Update entire spec
5. Restart process
Prevention
- Validate assumptions with code exploration during design
- Prototype risky integrations before finalizing spec
- Include technical spikes in task breakdown
Issue 2: Task Dependencies Block Progress
Symptoms
- Can't complete task without later features
- Multiple tasks need same file changes
- Tests need features not yet built
- Circular dependencies between tasks
Resolution
**Strategy 1: Reorder Tasks**
If dependency was missed in planning:
1. Identify the prerequisite task
2. Complete it first
3. Return to blocked task
4. Update task sequence for future
**Strategy 2: Split Tasks**
If task is too large:
1. Break blocked task into smaller pieces
2. Complete parts that aren't blocked
3. Queue dependent parts for later
4. Update task breakdown
**Strategy 3: Use Mocking/Stubbing**
If dependency is complex:
1. Create minimal stub/mock of dependency
2. Complete current task against stub
3. Replace stub when real dependency ready
4. Add integration testing task
**Strategy 4: Parallel Development**
If dependency is in progress:
1. Define clear interface/contract
2. Implement against interface
3. Test with mock implementation
4. Integrate when dependency completes
Prevention
- Map dependencies explicitly during task planning
- Order tasks to minimize blocking
- Identify tasks that can be parallelized
Issue 3: Requirements Unclear During Implementation
Symptoms
- Multiple valid interpretations
- Edge cases not addressed
- Conflicting requirements discovered
- UX details missing
Resolution
**Step 1: Analyze the Ambiguity**
- What exactly is unclear?
- What are possible interpretations?
- What's the impact of each?
- Is this common or edge case?
**Step 2: Propose Solution**
- What's most consistent with existing requirements?
- What aligns with user needs?
- What's technically simplest?
- Make recommendation with rationale
**Step 3: Get Clarification**
- Update requirements with clarification
- Update acceptance criteria if needed
- Document decision rationale
- Proceed with implementation
**Step 4: Update Tasks**
- Adjust current task if needed
- Add new tasks if solution is complex
- Update testing tasks
Prevention
- Probe for edge cases during requirements phase
- Use examples to clarify requirements
- Review requirements with developers before design
Issue 4: Technical Debt Creates Friction
Symptoms
- Need to refactor before adding feature
- Tests are brittle or missing
- Code is tightly coupled
- No clear extension points
Resolution
**Strategy 1: Refactor-First**
If refactoring is bounded and low-risk:
1. Create refactoring tasks separate from feature
2. Get approval for additional work
3. Complete refactoring with tests
4. Proceed with feature
**Strategy 2: Parallel Track**
If refactoring is extensive:
1. Implement feature with workarounds
2. Create separate refactoring initiative
3. Document technical debt created
4. Plan future cleanup
**Strategy 3: Incremental Improvement**
If refactoring can be done in pieces:
1. Refactor only what you touch
2. Leave code better than you found it
3. Add tests for refactored areas
4. Continue feature implementation
Prevention
- Assess existing code quality during design
- Include refactoring tasks when needed
- Set realistic timelines accounting for debt
Issue 5: Tests Failing or Hard to Write
Symptoms
- Tests fail randomly (flaky)
- Setup code is complex
- Mocking is complicated
- Tests take too long
Resolution
**For Tightly Coupled Code:**
- Extract interfaces for dependencies
- Use dependency injection
- Create test fixtures/factories
- Implement test doubles
**For Complex Setup:**
- Create reusable test utilities
- Use test builders/factories
- Implement setup helpers
- Share fixtures across tests
**For Flaky Tests:**
- Remove timing dependencies
- Eliminate global state
- Mock external dependencies
- Use deterministic test da
Read more
name: troubleshooting description: Diagnose and resolve common issues during spec-driven development and implementation. Learn strategies for handling spec-reality divergence, dependency blocks, unclear requirements, and other execution challenges. license: MIT compatibility: Claude Code, Cursor, VS Code, Windsurf metadata: category: methodology complexity: intermediate author: Kiro Team version: "1.0.0"
Troubleshooting
Diagnose and resolve common problems that arise during spec-driven development and feature implementation.
When to Use This Skill
Use troubleshooting strategies when:
- Implementation doesn't match spec expectations
- Tasks are blocked by dependencies
- Requirements are unclear during coding
- Tests are failing or hard to write
- Performance doesn't meet requirements
- Integration problems occur
Issue 1: Spec and Reality Diverge
Symptoms
- Code structure doesn't match spec assumptions
- APIs are unavailable or deprecated
- Performance differs from expectations
- Integration points work differently than specified
Resolution
**Immediate Actions:** 1. Document the gap exactly 2. Assess impact (minor detail vs fundamental issue) 3. Stop implementing until you understand implications
**Resolution Options:**
**Option 1: Update Spec (Minor Deviations)**
If difference is minor and doesn't affect requirements: 1. Update design section with actual approach 2. Adjust affected tasks 3. Document why change was needed 4. Continue implementation
**Option 2: Redesign (Major Deviations)**
If core assumptions are wrong: 1. Return to design phase 2. Incorporate new understanding 3. Re-validate against requirements 4. Create new task breakdown 5. Restart with corrected plan
**Option 3: Adjust Requirements (Fundamental Issues)**
If requirements can't be met as stated: 1. Document why requirements aren't achievable 2. Propose alternative approach 3. Get stakeholder approval 4. Update entire spec 5. Restart process
Prevention
- Validate assumptions with code exploration during design
- Prototype risky integrations before finalizing spec
- Include technical spikes in task breakdown
Issue 2: Task Dependencies Block Progress
Symptoms
- Can't complete task without later features
- Multiple tasks need same file changes
- Tests need features not yet built
- Circular dependencies between tasks
Resolution
**Strategy 1: Reorder Tasks**
If dependency was missed in planning: 1. Identify the prerequisite task 2. Complete it first 3. Return to blocked task 4. Update task sequence for future
**Strategy 2: Split Tasks**
If task is too large: 1. Break blocked task into smaller pieces 2. Complete parts that aren't blocked 3. Queue dependent parts for later 4. Update task breakdown
**Strategy 3: Use Mocking/Stubbing**
If dependency is complex: 1. Create minimal stub/mock of dependency 2. Complete current task against stub 3. Replace stub when real dependency ready 4. Add integration testing task
**Strategy 4: Parallel Development**
If dependency is in progress: 1. Define clear interface/contract 2. Implement against interface 3. Test with mock implementation 4. Integrate when dependency completes
Prevention
- Map dependencies explicitly during task planning
- Order tasks to minimize blocking
- Identify tasks that can be parallelized
Issue 3: Requirements Unclear During Implementation
Symptoms
- Multiple valid interpretations
- Edge cases not addressed
- Conflicting requirements discovered
- UX details missing
Resolution
**Step 1: Analyze the Ambiguity**
- What exactly is unclear?
- What are possible interpretations?
- What's the impact of each?
- Is this common or edge case?
**Step 2: Propose Solution**
- What's most consistent with existing requirements?
- What aligns with user needs?
- What's technically simplest?
- Make recommendation with rationale
**Step 3: Get Clarification**
- Update requirements with clarification
- Update acceptance criteria if needed
- Document decision rationale
- Proceed with implementation
**Step 4: Update Tasks**
- Adjust current task if needed
- Add new tasks if solution is complex
- Update testing tasks
Prevention
- Probe for edge cases during requirements phase
- Use examples to clarify requirements
- Review requirements with developers before design
Issue 4: Technical Debt Creates Friction
Symptoms
- Need to refactor before adding feature
- Tests are brittle or missing
- Code is tightly coupled
- No clear extension points
Resolution
**Strategy 1: Refactor-First**
If refactoring is bounded and low-risk: 1. Create refactoring tasks separate from feature 2. Get approval for additional work 3. Complete refactoring with tests 4. Proceed with feature
**Strategy 2: Parallel Track**
If refactoring is extensive: 1. Implement feature with workarounds 2. Create separate refactoring initiative 3. Document technical debt created 4. Plan future cleanup
**Strategy 3: Incremental Improvement**
If refactoring can be done in pieces: 1. Refactor only what you touch 2. Leave code better than you found it 3. Add tests for refactored areas 4. Continue feature implementation
Prevention
- Assess existing code quality during design
- Include refactoring tasks when needed
- Set realistic timelines accounting for debt
Issue 5: Tests Failing or Hard to Write
Symptoms
- Tests fail randomly (flaky)
- Setup code is complex
- Mocking is complicated
- Tests take too long
Resolution
**For Tightly Coupled Code:**
- Extract interfaces for dependencies
- Use dependency injection
- Create test fixtures/factories
- Implement test doubles
**For Complex Setup:**
- Create reusable test utilities
- Use test builders/factories
- Implement setup helpers
- Share fixtures across tests
**For Flaky Tests:**
- Remove timing dependencies
- Eliminate global state
- Mock external dependencies
- Use deterministic test da
A comprehensive guide to systematic feature development using the three-phase spec process: Requirements → Design → Tasks.
Repo: jasonkneen/kiro
Other skills on kiro-spec-driven.
- /ai-prompting
Effective communication strategies for AI-assisted development. Learn context-first prompting, phased interactions, iterative refinement, and validation techniques to get better results from Claude and other AI coding assistants.
Open skill - /create-steering-documents
Create comprehensive steering documents for development projects. Generates project-specific standards, git workflows, and technology guidelines in .kiro/steering/ directory.
Open skill - /design-documentation
Transform approved requirements into comprehensive technical designs. Define system architecture, component interactions, data models, and interfaces to create a blueprint for implementation.
Open skill - /quality-assurance
Comprehensive testing and validation strategies for spec-driven development. Learn phase-specific validation techniques, quality gates, and testing approaches to ensure high-quality implementation.
Open skill - /requirements-engineering
Transform vague feature ideas into clear, testable requirements using EARS format. Capture user stories, define acceptance criteria, identify edge cases, and validate completeness before moving to design.
Open skill - /spec-driven-development
Systematic three-phase approach to feature development using Requirements, Design, and Tasks phases. Transforms vague feature ideas into well-defined, implementable solutions that reduce ambiguity, improve quality, and enable effective AI collaboration.
Open skill

