diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..28d8213 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,40 @@ +--- +name: Bug report +about: Report a bug or unexpected behavior +title: '' +labels: bug, java +assignees: '' + +--- + +## Description + +A clear and concise description of what the bug is. + +## Steps to Reproduce + +1. Step 1 +2. Step 2 +3. Step 3 + +## Expected Behavior + +What you expected to happen. + +## Actual Behavior + +What actually happened. + +## Environment + +- **Java version:** (output of `java --version`) +- **Spring Boot version:** (from `pom.xml`) +- **OS:** (e.g., macOS 15.0, Ubuntu 24.04, Windows 11) + +## Additional Context + +Add any other context about the problem here (logs, screenshots, etc.). + +## Possible Solution + +(Optional) Suggest a fix or workaround if you have one. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3ba13e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index 32fb33a..5dc04ec 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,7 +1,7 @@ --- name: Feature request about: Propose a new feature or enhancement -title: "[FEATURE]" +title: '' labels: enhancement, java assignees: '' @@ -15,17 +15,17 @@ What problem are you trying to solve? What's the pain point? Describe the expected behavior and functionality this feature will provide. -## Suggested Approach +## Suggested Approach _(optional)_ -Describe the technical implementation plan. Include architecture, key files/modules to modify, APIs, and any code patterns to follow. +If known, describe the technical implementation plan. Include architecture, key files/modules to modify, APIs, and any code patterns to follow. ## Acceptance Criteria How will we know this feature is complete and working correctly? -- [ ] Criterion 1 -- [ ] Criterion 2 -- [ ] Criterion 3 +- [ ] Feature behaves as described in the proposed solution +- [ ] Tests are added or updated to cover the new functionality +- [ ] No regressions in existing tests ## References diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 2583a32..79661aa 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -109,6 +109,25 @@ Example: `feat(api): add player stats endpoint (#42)` - Test database configuration (in-memory SQLite) - Production configurations or deployment secrets +### Creating Issues + +This project uses Spec-Driven Development (SDD): discuss in Plan mode first, create a GitHub Issue as the spec artifact, then implement. Always offer to draft an issue before writing code. + +**Feature request** (`enhancement` label): +- **Problem**: the pain point being solved +- **Proposed Solution**: expected behavior and functionality +- **Suggested Approach** *(optional)*: implementation plan if known +- **Acceptance Criteria**: at minimum — behaves as proposed, tests added/updated, no regressions +- **References**: related issues, docs, or examples + +**Bug report** (`bug` label): +- **Description**: clear summary of the bug +- **Steps to Reproduce**: numbered, minimal steps +- **Expected / Actual Behavior**: one section each +- **Environment**: runtime versions + OS +- **Additional Context**: logs, screenshots, stack traces +- **Possible Solution** *(optional)*: suggested fix or workaround + ### Key workflows **Add an endpoint**: Define DTO in `models/` with Bean Validation → add service method in `services/` with `@Transactional` → create controller endpoint with `@Operation` annotation → add tests → run `./mvnw clean test jacoco:report`. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..8413d12 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,21 @@ +## Summary + +Brief description of the changes and why they were made. + +## Type of Change + +- [ ] `feat` — new feature +- [ ] `fix` — bug fix +- [ ] `chore` — maintenance, tooling, or dependency update +- [ ] `docs` — documentation only +- [ ] `test` — adding or updating tests +- [ ] `refactor` — code change that neither fixes a bug nor adds a feature +- [ ] `ci` — CI/CD changes +- [ ] `perf` — performance improvement + +## Checklist + +- [ ] `CHANGELOG.md` updated +- [ ] All tests pass +- [ ] No regressions introduced +- [ ] Follows project coding guidelines