A structured template system for managing project issues locally. This system provides a clear, file-based approach to track user stories, features, bugs, and tests.
English | 简体中文
- Features
- Directory Structure
- Issue Types
- Issue States
- File Naming Convention
- Templates
- Getting Started
- How to Use
- Example
- Best Practices
- Editor Integration
- FAQ
- Contributing
- License
- 📁 Structured directory organization by milestones
- 📝 Standardized templates for stories and issues
- ✅ Clear task state tracking
- 🔗 Built-in dependency management
- 📊 Progress tracking through status history
issues/
├── templates/
│ ├── story.md
│ └── issue.md
├── m001-project-milestone/
│ ├── 001-story-feature-description.md
│ ├── 002-feat-implementation.md
│ ├── 003-test-test-suite.md
│ └── 004-fix-bug-fix.md
└── m002-another-milestone/
└── ...
story
: User stories describing complete user valuefeat
: New feature implementationfix
: Bug fix implementationtest
: Test implementation
[ ]
Not started[x]
Completed[-]
In progress[*]
Skipped[!]
Abandoned
Files follow the pattern: {id}-{type}-{description}.md
id
: Globally unique identifier across all issuestype
: Issue type (story/feat/fix/test)description
: Brief kebab-case description
Two standard templates are provided:
-
Story Template (
templates/story.md
)# Title Brief story title # Story As a [role] I want [goal/action] So that [benefit/value] # Acceptance Criteria - [ ] Criteria 1 - [ ] Criteria 2 # Sub-Issues - [ ] {id} Issue description # Dependencies - [ ] {id} Dependency description # Status History - YYYY-MM-DD: Created
-
Issue Template (
templates/issue.md
)# Title Brief issue title # Introduction Detailed description of the issue # Tasks - [ ] Task 1 - [ ] Task 2 # Dependencies - [ ] {id} Dependency description # Status History - YYYY-MM-DD: Created
- Clone this repository
- Create an
issues
directory in your project - Copy
.cursorrules
to your project root directory for Cursor editor supportcp issues-template/.cursorrules ./.cursorrules
- Copy the templates from
issues-template/templates
toissues/templates
- Review the sample in
issues-template/sample
to understand the structure - Start creating your issues following the naming conventions and using the templates
- Create a new directory under
issues/
with the patternm{number}-{description}
mkdir issues/m001-user-authentication
-
User Story
- Copy the story template
- Assign a unique ID (e.g., 001)
- Fill in the user story sections
- List acceptance criteria
- Add sub-issues that will implement this story
cp issues/templates/story.md issues/m001-user-authentication/001-story-login-system.md
-
Feature/Fix/Test Issues
- Copy the issue template
- Assign the next available ID
- Choose appropriate type (feat/fix/test)
- List specific tasks
- Link dependencies to other issues
cp issues/templates/issue.md issues/m001-user-authentication/002-feat-login-page.md
-
Update task states using the defined markers:
- [x] Completed task - [-] Task in progress - [ ] Not started task - [*] Skipped task - [!] Abandoned task
-
Always update the Status History when changing states:
# Status History - 2024-01-08: Created - 2024-01-09: Started implementation - 2024-01-10: Completed basic features
-
Reference other issues using their IDs:
# Dependencies - [ ] 001 Parent user story - [ ] 003 Backend API implementation
-
Check dependencies before marking an issue as complete
- Create the milestone directory first
- Start with a user story
- Break down into implementation issues
- Update status regularly
- Keep dependencies up to date
- Review and update task states daily
Check out the sample implementation in issues-template/sample/m001-auth-system/
for a complete example of:
- User authentication story
- Login page implementation
- Test suite
- Bug fix task
- Always use the provided templates for consistency
- Maintain unique IDs across all issues
- Keep the status history updated
- Document dependencies clearly
- Use meaningful descriptions in file names
- Group related issues under appropriate milestones
- The
.cursorrules
file in your project root enables Cursor to understand the issue management structure - Use Cursor's markdown preview to view issues
- Utilize Cursor's file navigation to quickly switch between issues
- Use Cursor's search functionality to find related issues
- Cursor will help enforce naming conventions and structure defined in
.cursorrules
- Install a Markdown preview extension
- Use workspace folders to organize milestones
- Use the integrated terminal for creating new issues
- Enable word wrap for better readability
You can track project progress in several ways:
- Milestone Overview: Check the completion status of issues within each milestone
- Status Counts: Count issues by their status within a milestone
- Dependencies: Review the dependency graph to identify bottlenecks
- History Timeline: Review status history across issues to understand progress
A: Create a new fix issue in the current milestone with a high priority note in the introduction section. Link it to the relevant story or feature.
A: Create new issues and update the original issue to reference them in the Sub-Issues section. Update the original tasks to reflect the split.
A: No, keep all issues for historical tracking. Use the status markers to indicate completion.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
The Apache License 2.0 is a permissive license that allows you to:
- Use the software for any purpose
- Distribute and modify the software
- Patent rights are explicitly granted
- Distribute modified versions under any license of your choice
This license also provides an express grant of patent rights from contributors to users.