Skip to content
issue-planning logo

Issue Analysis & Planning

issue-planning

Guide structured analysis of problems and planning of implementation. Use when starting work on a new feature, encountering a bug, refactoring existing functionality, or any task that benefits from thinking before coding. Helps create well-defined GitHub issues with clear scope, acceptance criter...

SKILL.md

Full skill instructions

Issue Analysis & Planning

This skill guides structured problem analysis and implementation planning before coding.

Workflow Overview

1. Discovery        → Add summary to doc/​plans/​module_issues.md
2. Planning         → Create gi_draft_<module>_<desc>.md with detailed plan
3. Review           → Review plan with user, refine until ready
4. Publish          → User creates GitHub issue, rename file to gi_<id>_<desc>.md
5. Implementation   → Work on issue, PRs link automatically
6. Completion       → Close GitHub issue, update module_issues.md status

Important: This skill creates LOCAL draft files only. The user reviews and manually publishes to GitHub.


Step 1: Problem Analysis

1.1 What is the current state?

  • What exists now?
  • What is the observed behavior?
  • Where does this sit in the broader system?

1.2 What is the desired state?

  • What should happen instead?
  • Who benefits and how?
  • What does "done" look like?

1.3 What is the gap?

  • Why doesn't the current state meet the need?
  • What's blocking progress?
  • Are there dependencies or prerequisites?

1.4 What is the scope?

  • What's included in this issue?
  • What's explicitly excluded (for later)?
  • What are the boundaries?

Step 2: Problem Description

Write a clear, concise problem statement following this structure:

**Context:** [Where does this fit? What's the background?]

**Problem:** [What's wrong or missing? One or two sentences.]

**Impact:** [Why does this matter? Who is affected?]

**Desired outcome:** [What should be true when this is resolved?]

Step 3: Implementation Planning

3.1 Approach options

List 2-3 possible approaches. For each:

  • Brief description
  • Pros
  • Cons
  • Rough effort estimate

3.2 Recommended approach

Select one approach and explain why.

3.3 Break into steps

List concrete implementation steps. Each step should be:

  • Small enough to complete in one focused session
  • Testable or verifiable
  • Independent where possible

Example:

1. [ ] Create data model for X
2. [ ] Build function to fetch Y
3. [ ] Add validation for Z
4. [ ] Write tests for steps 1-3
5. [ ] Integrate with existing component W

3.4 Identify risks & unknowns

  • What might go wrong?
  • What do you need to learn or verify first?
  • Are there external dependencies?

Step 4: Create Local Issue File

File naming

Draft (before GitHub publication):

doc/​plans/​issues/​gi_draft_<module>_<short_description>.md

Published (after GitHub issue created):

doc/​plans/​issues/​gi_<github_id>_<short_description>.md

Module abbreviations

ModuleAbbreviation
preprocessing_runoffprepq
preprocessing_gatewayprepg
preprocessing_station_forcingprepf
linear_regressionlr
machine_learningml
postprocessing_forecastspp
forecast_dashboardfd
configuration_dashboardcd
pipelinep
iEasyHydroForecastiEHF
reset_forecast_run_dater
cross-module/​infrastructureinfra

Issue file template

The issue file must be standalone — a junior developer should be able to implement it without access to the full project context.

# <Title>

**Status**: Draft | Ready for Review | Published (GitHub #XX) | In Progress | Complete
**Module**: <module name>
**Priority**: Critical | High | Medium | Low
**Labels**: `<label1>`, `<label2>`

---

## Summary

[One sentence describing what this issue accomplishes]

## Context

[Background — why this matters, where it fits in the system. Include enough detail that someone unfamiliar with the project can understand.]

## Problem

[What's wrong or missing. Be specific about observed vs expected behavior.]

## Desired Outcome

[What "done" looks like — specific, verifiable criteria]

---

## Technical Analysis

### Current Implementation

[Describe relevant existing code. Include file paths and line numbers.]

**Key files:**
- `apps/<module>/​path/​to/​file.py` - Description of what this file does
- `apps/<module>/​path/​to/​other.py:123-145` - Specific function/​section

### Root Cause

[For bugs: what is causing the issue. For features: what's missing.]

---

## Implementation Plan

### Approach

[Describe the chosen approach and why it was selected over alternatives.]

### Files to Create

| File | Purpose |
|------|---------|
| `path/​to/​new_file.py` | Description |

### Files to Modify

| File | Changes |
|------|---------|
| `path/​to/​existing.py` | Description of changes |

### Implementation Steps

- [ ] Step 1: [Specific, actionable task]
- [ ] Step 2: [Specific, actionable task]
- [ ] Step 3: [Specific, actionable task]

### Code Examples

[Include specific code snippets showing the expected implementation. This helps ensure consistency and reduces ambiguity.]

```python
# Example of new function signature
def new_function(param1: str, param2: int) -> dict:
    """
    Brief description.

    Args:
        param1: Description
        param2: Description

    Returns:
        Description of return value
    """
    pass

Testing

Test Cases

  • Test case 1: [Description of what to test]
  • Test case 2: [Description of what to test]

Testing Commands

# How to run tests for this change
cd apps/<module>
uv run pytest tests/ -v -k "test_name"

Manual Verification

[Steps to manually verify the fix/​feature works]


Out of Scope

[What this issue explicitly does NOT address — important for preventing scope creep]

Dependencies

[Other issues, external factors, or prerequisites that must be completed first]

Acceptance Criteria

  • Criterion 1: [Specific, measurable]
  • Criterion 2: [Specific, measurable]
  • All existing tests pass
  • New tests cover the changes
  • Code follows project conventions (see .serena/​memories/​code_style_conventions.md)

References

  • Related issues: #XX, #YY
  • Planning docs: doc/​plans/<related_doc>.md
  • External docs: Link

---

## Step 5: Update Issue Index

After creating the issue file, add an entry to `doc/​plans/​module_issues.md`:

```markdown
### Issue <MODULE>-NNN: [Brief title]
**Status**: Draft | Ready | In Progress | Complete
**Priority**: High | Medium | Low
**File**: `issues/​gi_draft_<module>_<desc>.md`
**GitHub**: #XX (after publication)

[One-line description]

Checklist Before Marking Ready for Review

  • Problem is clearly understood and documented
  • Scope is defined and bounded
  • Technical analysis includes specific file paths and line numbers
  • Implementation steps are small and testable
  • Code examples show expected patterns
  • Test cases are defined
  • Acceptance criteria are specific and measurable
  • A junior developer could implement this without asking questions
  • Entry added to doc/​plans/​module_issues.md

Tips

Keep issues small. If you have more than 5-7 implementation steps, consider splitting into multiple issues.

Write for a junior developer. Assume someone unfamiliar with the codebase will implement this. Include file paths, function names, and code examples.

Define "done" precisely. Vague outcomes lead to scope creep. "Works correctly" is not a criterion; "Returns valid JSON for all input cases in test suite" is.

Surface unknowns early. If something needs investigation, make that a separate spike issue rather than bundling it with implementation.

Include code examples. Showing the expected function signature, data structure, or pattern reduces ambiguity and speeds up implementation.

Reference specific locations. Use file.py:123 format for line numbers so implementers can jump directly to relevant code.


Related Skills

  • executing-issues: Use to implement the issue once the plan is ready
  • brainstorming: Use before planning if requirements are unclear
  • software-architecture: Reference for code conventions

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View