Skip to content

Latest commit

 

History

History
297 lines (191 loc) · 6.16 KB

File metadata and controls

297 lines (191 loc) · 6.16 KB

Feature XXX: [Feature Title]

Status: [Planning | In Progress | Complete]

Instructions: Copy this template for new features. Replace XXX with the next feature number. Delete this instruction block and all <!-- comments --> after filling in.

Overview

Problem Statement

Current State

Target State


User Stories

[Story Group Name]

US-XXX-001: [Story Title]

As a [user type]
I want to [action]
So that [benefit]

Acceptance Criteria:

  • Criterion 1
  • Criterion 2

Technical Design

Architecture Changes

Domain Model

// Example domain model code

API Endpoints

Method Endpoint Description
GET /api/v1/resource Description
POST /api/v1/resource Description

Database Changes

UI Components


Implementation Plan

Phase 1: [Phase Title]

Objective:

Tasks:

  • Task 1
  • Task 2
  • Write unit tests
  • Implementation

Commit:

git add .
git commit -m "feat(scope): brief description of phase 1

- Detail 1
- Detail 2

Refs: #XXX"

Phase 2: [Phase Title]

Objective:

Tasks:

  • Task 1
  • Task 2
  • Write unit tests
  • Implementation

Commit:

git add .
git commit -m "feat(scope): brief description of phase 2

- Detail 1
- Detail 2

Refs: #XXX"

Phase 3: [Phase Title]

Objective:

Tasks:

  • Task 1
  • Task 2
  • Write integration tests
  • Implementation

Commit:

git add .
git commit -m "feat(scope): brief description of phase 3

- Detail 1
- Detail 2

Refs: #XXX"

Phase N: Documentation & Cleanup

Objective: Final polish, documentation updates, and cleanup

Tasks:

  • Update API documentation / OpenAPI specs
  • Add/update XML comments for public APIs
  • Update README if needed
  • Remove any TODO comments
  • Final code review

Commit:

git add .
git commit -m "docs(scope): add documentation for feature XXX

- XML comments for public API
- Update README
- OpenAPI spec updates

Refs: #XXX"

Conventional Commit Reference

Use these commit types to ensure proper changelog generation:

Type When to Use SemVer Impact Example
feat New feature or capability Minor feat(budget): add category management
fix Bug fix Patch fix(api): correct pagination header
docs Documentation only None docs: update API examples
style Formatting, no logic change None style: fix indentation
refactor Code restructure, no feature/fix None refactor(domain): extract value object
perf Performance improvement Patch perf(query): optimize category lookup
test Adding or fixing tests None test(budget): add category validation tests
chore Build, CI, dependencies None chore: update NuGet packages

Breaking Changes

For breaking changes, append ! after the type:

git commit -m "feat(api)!: redesign category endpoints

BREAKING CHANGE: Category endpoints now use /api/v2/categories
- Old /api/v1/categories endpoints deprecated
- New request/response format

Refs: #XXX"

Scope Suggestions

Use consistent scopes across the project:

Scope Description
domain Domain model, entities, value objects
api API controllers, endpoints
client Blazor UI components
infra Infrastructure, database, repositories
app Application services
auth Authentication/authorization
budget Budget-specific features
transaction Transaction-specific features
recurring Recurring items features

Testing Strategy

Unit Tests

  • Test scenario 1
  • Test scenario 2

Integration Tests

  • Test scenario 1
  • Test scenario 2

Manual Testing Checklist

  • Step 1
  • Step 2

Migration Notes

Database Migration

dotnet ef migrations add FeatureXXX_Description --project src/BudgetExperiment.Infrastructure --startup-project src/BudgetExperiment.Api

Breaking Changes


Security Considerations


Performance Considerations


Future Enhancements


References


Changelog

Date Change Author
YYYY-MM-DD Initial draft @username