This sub-workflow provides an aggressive, thorough, and all-encompassing investigation
process for technical analysis when creating GitHub issues. It employs methods from
the issue-investigator mode to deeply analyze the codebase and formulate comprehensive
technical solutions. This workflow is designed to produce scoped issues that can be
used in automated fix workflows.
Create Investigation Plan
When technical analysis is requested, immediately create a comprehensive todo list
to track the investigation progress.
[ ] Extract keywords from the issue description
[ ] Perform initial broad codebase search
[ ] Analyze search results and identify key components
[ ] Deep dive into relevant files and implementations
[ ] Form initial hypothesis about the issue/feature
[ ] Attempt to disprove hypothesis through further investigation
[ ] Identify all affected files and dependencies
[ ] Map out the complete implementation approach
[ ] Document technical risks and edge cases
[ ] Formulate comprehensive technical solution
[ ] Create detailed acceptance criteria
[ ] Prepare technical analysis summary
]]>
Extract all relevant keywords, concepts, and technical terms from the issue description.
Be exhaustive - include function names, error messages, feature names, and related concepts.
Identify primary technical concepts
Extract error messages or specific symptoms
Note any mentioned file paths or components
List related features or functionality
Include synonyms and related terms
Mark "Extract keywords from the issue description" as complete
Perform multiple rounds of codebase searches, starting broad and progressively
narrowing based on findings. This is an aggressive, exhaustive search process.
Initial Broad Search
Use codebase_search with all extracted keywords to get an overview of relevant code.
[Combined keywords from extraction phase]
]]>
Component Discovery
Based on initial results, identify key components and search for:
- Related class/function definitions
- Import statements and dependencies
- Configuration files
- Test files that might reveal expected behavior
Deep Implementation Search
Search for specific implementation details:
- Error handling patterns
- State management
- API endpoints or routes
- Database queries or models
- UI components and their interactions
Edge Case and Integration Search
Look for:
- Edge cases in the code
- Integration points with other systems
- Configuration options that affect behavior
- Feature flags or conditional logic
Update search-related todos as each iteration completes
Thoroughly analyze all relevant files discovered during the search phase.
Use list_code_definition_names to understand file structure
Read complete files to understand full context
Trace execution paths through the code
Identify all dependencies and imports
Map relationships between components
Document findings including:
- File paths and their purposes
- Key functions and their responsibilities
- Data flow through the system
- External dependencies
- Potential impact areas
Mark file analysis todos as complete
Form a comprehensive hypothesis about the issue or feature implementation.
Identify the most likely root cause
Trace the bug through the execution path
Determine why the current implementation fails
Consider environmental factors
Identify the optimal integration points
Determine required architectural changes
Plan the implementation approach
Consider scalability and maintainability
Mark hypothesis formation as complete
Aggressively attempt to disprove the hypothesis by searching for contradictory evidence.
Search for Alternative Implementations
Look for similar features implemented differently
Check for deprecated code that might interfere
Configuration and Environment Check
Search for configuration that could change behavior
Look for environment-specific code paths
Test Case Analysis
Find existing tests that might contradict hypothesis
Look for test cases that reveal edge cases
Historical Context
Search for comments explaining design decisions
Look for TODO or FIXME comments related to the area
If hypothesis is disproven, return to search phase with new insights.
If hypothesis stands, proceed to solution formulation.
Update hypothesis validation status
Create a comprehensive technical solution with extreme detail.
- Exact files to modify with line numbers
- New files to create with full paths
- Specific code changes required
- Order of implementation steps
- Migration strategy if needed
- All files that import affected code
- API contracts that must be maintained
- Database schema changes if any
- Configuration changes required
- Documentation updates needed
- Unit tests to add or modify
- Integration tests required
- Edge cases to test
- Performance testing needs
- Manual testing scenarios
- Breaking changes identified
- Performance implications
- Security considerations
- Backward compatibility issues
- Rollback strategy
Mark solution formulation as complete
Create extremely detailed acceptance criteria that can guide automated implementation.
Each criterion must be independently testable
Include both positive and negative test cases
Specify exact error messages and codes
Define performance thresholds where applicable
Mark acceptance criteria creation as complete
- All keywords extracted and searched
- Multiple search iterations completed
- All relevant files analyzed
- Hypothesis formed and validated
- Comprehensive solution documented
- Acceptance criteria defined
- All risks and edge cases identified
- Technical analysis formatted for issue
Mark all investigation todos as complete and update the main workflow todo list