Skip to main content

Issue Templates

We use structured issue templates to ensure consistency and gather all necessary information upfront. This helps maintainers triage issues faster and contributors understand what's expected.

Available Templates​

When you create a new issue, you'll see the following options:

TemplatePurposeLabels
🐞 Bug ReportReport bugs or unexpected behaviortype: bug, status: triage
πŸ’‘ Feature RequestSuggest new features or enhancementstype: feature-request, status: triage
πŸ”§ ChoreMaintenance and housekeeping taskstype: chore, status: triage
πŸ”¬ Spike / ResearchRequest technical investigationtype: spike, status: triage
✨ FeatureDefine a new feature for implementationtype: feature, status: ready
♻️ RefactoringPropose code improvementstype: refactoring, status: triage
πŸ“š DocumentationReport or improve documentationtype: documentation, status: triage

🐞 Bug Report​

Use this template when something isn't working as expected.

When to Use​

  • Application crashes or freezes
  • Features not working correctly
  • Performance issues
  • UI/UX problems
  • Error messages

Required Information​

FieldDescription
Bug DescriptionClear explanation of what's wrong
Expected BehaviorWhat should happen
Actual BehaviorWhat actually happens
Steps to ReproduceDetailed steps to recreate the issue
SeverityCritical / High / Medium / Low
VersionNoderium version you're using
Operating SystemYour OS and version

Tips for Good Bug Reports​

βœ… Good: "Clicking 'Save' on a new note causes the app to freeze for 5 seconds"
❌ Bad: "Save doesn't work"

βœ… Good: "Steps: 1. Create new note, 2. Type 100+ characters, 3. Click Save"
❌ Bad: "Just click save and it breaks"

πŸ’‘ Feature Request​

Use this template to suggest new functionality or improvements.

When to Use​

  • New features you'd like to see
  • Enhancements to existing features
  • UX improvements
  • New integrations

Key Sections​

SectionPurpose
Problem StatementWhat problem does this solve?
Proposed SolutionHow should it work?
Alternatives ConsideredOther approaches you thought about
User StoryWho benefits and how?
Acceptance CriteriaWhat defines "done"?

Writing Effective User Stories​

As a [type of user],
I want [some goal],
So that [some reason].

Example:

As a power user with multiple vaults,
I want to quickly switch between vaults using keyboard shortcuts,
So that I can maintain my flow without reaching for the mouse.

πŸ”§ Chore / Maintenance​

Use this template for routine maintenance tasks.

When to Use​

  • Dependency updates
  • CI/CD improvements
  • Build configuration changes
  • Development tooling updates
  • Repository maintenance
  • Security patches

Priority Levels​

PriorityWhen to Use
LowCan be done when convenient
MediumShould be done in near future
HighShould be prioritized
CriticalSecurity or blocking issue

πŸ”¬ Spike / Research​

Use this template for time-boxed technical investigations.

When to Use​

  • Evaluating new technologies
  • Researching implementation approaches
  • Performance analysis
  • Security assessments
  • Proof of concept work

Spike Types​

TypePurpose
Technical FeasibilityCan we do this?
ArchitectureHow should we structure this?
Technology EvaluationWhich tool/library should we use?
PerformanceWhat are the performance characteristics?
SecurityWhat are the security implications?
IntegrationHow do we integrate with X?
Proof of ConceptBuild a working prototype

Expected Deliverables​

Spikes should produce tangible outputs:

  • Technical document or ADR (Architecture Decision Record)
  • Proof of concept code
  • Comparison matrix
  • Recommendation document
  • Demo or presentation

Time-boxing​

Spikes are time-limited to prevent scope creep:

  • 1-2 hours: Quick research
  • Half day: Focused investigation
  • 1 day: Detailed analysis
  • 2-3 days: Complex evaluation
  • 1 week: Major investigation

✨ Feature​

Use this template to define a new feature for implementation. This is typically used by maintainers after a feature request has been accepted and refined.

When to Use​

  • Implementing an accepted feature request
  • Breaking down large features into smaller issues
  • Defining planned roadmap features
  • Creating implementation specifications

Key Sections​

SectionPurpose
DescriptionClear explanation of what the feature does
User StoryWho benefits and how
Acceptance CriteriaWhat defines "done"?
Technical NotesImplementation considerations
ComplexityEstimated effort
PriorityImplementation priority

Difference from Feature Request​

Feature RequestFeature
Suggested by communityDefined by maintainers
Label: type: feature-requestLabel: type: feature
Status: triageStatus: ready
May or may not be implementedApproved for implementation
Problem-focusedSolution-focused

♻️ Refactoring​

Use this template to propose code improvements that don't change functionality.

When to Use​

  • Code cleanup and simplification
  • Architecture improvements
  • Design pattern implementations
  • Technical debt reduction
  • Performance optimizations (internal)
  • Type safety improvements

Important Considerations​

AspectQuestion to Answer
ScopeHow many files/modules are affected?
Breaking ChangesWill this affect public APIs?
BenefitsWhat improvements will this bring?
RisksWhat could go wrong?

Scope Levels​

  • Small: Single file or function
  • Medium: Multiple files in same module
  • Large: Multiple modules or cross-cutting
  • Major: Architectural change

πŸ“š Documentation​

Use this template for documentation improvements.

When to Use​

  • Missing documentation
  • Incorrect or outdated content
  • Unclear explanations
  • Incomplete guides
  • Typos and formatting issues

Documentation Types​

  • README files
  • API documentation
  • Getting Started guides
  • How-to guides
  • Architecture docs
  • Contributing guides
  • Code comments
  • Changelog

Issue Types​

TypeDescription
MissingDocumentation doesn't exist
IncorrectDocumentation has errors
OutdatedDocumentation needs updating
UnclearDocumentation is confusing
IncompleteDocumentation needs more detail

Best Practices​

Do's βœ…β€‹

  • Search first: Check if a similar issue exists
  • Be specific: Provide detailed information
  • One issue, one topic: Don't combine multiple issues
  • Use formatting: Code blocks, lists, headers improve readability
  • Attach evidence: Screenshots, logs, error messages help
  • Be respectful: We're all here to help

Don'ts βŒβ€‹

  • Don't open duplicates
  • Don't be vague or generic
  • Don't include sensitive information
  • Don't demand immediate fixes
  • Don't use issues for support questions (use Discussions)

Issue Lifecycle​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Created │────▢│ Triage │────▢│ Accepted β”‚
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ status: β”‚ β”‚ Maintainer β”‚ β”‚ + priority β”‚
β”‚ triage β”‚ β”‚ reviews β”‚ β”‚ + scope β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ In Progress │────▢│ Review │────▢│ Closed β”‚
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ PR opened β”‚ β”‚ PR merged β”‚ β”‚ Issue done β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Need Help?​

If you're unsure which template to use:

  1. Bug or not working β†’ Bug Report
  2. New capability idea β†’ Feature Request (community suggestion)
  3. Maintenance β†’ Chore
  4. Need to research β†’ Spike
  5. Planned/approved feature β†’ Feature (maintainers only)
  6. Code quality β†’ Refactoring
  7. Docs problem β†’ Documentation
  8. Question β†’ GitHub Discussions