Article
Bug and Issue Tracking: A Practical Model and Template in Alios
Bug tracking scattered across Slack and email means the same issues get reported twice and fixes go unverified. Build a practical bug and issue tracking model in Alios.
Bug and Issue Tracking: A Practical Model and Template in Alios

A bug gets reported in Slack. The developer sees it and thinks "I'll deal with this after my current task." The reporter assumes it's been picked up. Two days later the reporter asks again. The developer had forgotten. The bug gets fixed, but nobody tells the reporter it's live. The reporter files it again two weeks later because they never saw confirmation.
This loop plays out in some form in nearly every startup. The problem isn't the bugs โ bugs are inevitable. The problem is that the tracking lives in messaging, which means it doesn't actually track anything.
What Gets Lost Without a System
When bug and issue tracking runs through Slack, email, or verbal reports, four things consistently break down.
Bugs get lost. A message in a busy Slack channel gets buried. The developer who was supposed to see it missed it, or saw it and forgot. There's no record that the bug was ever reported.
Duplicate reports pile up. Without a visible list of known issues, the same bug gets reported multiple times. Each time it gets reported, someone spends time triaging it, realizing it's already known, and updating the reporter.
Fixes go unverified. The developer marks something done in their head but the fix never gets confirmed by the person who reported it. The bug resurfaces in production or in the next QA cycle.
Priority is invisible. Ten open bugs with no priority signal means the developer picks whichever feels most familiar. A critical issue might wait while a low-impact cosmetic fix gets addressed first.
The Two-Layer Model in Alios
Bug and issue tracking in Alios works across two connected layers: a bug list node that holds all known issues, and individual bug nodes for each issue that carry the full lifecycle.
Layer 1 โ The Bug List
A single top-level node serves as the bug registry:
๐ BUG & ISSUE TRACKER
Description: All known bugs and issues.
Every reported bug gets a child node here
before any other action is taken.
Filters in use:
- Open by priority: Critical โ Low
- Open by owner
- Closed this sprintEvery new bug report โ regardless of where it comes from โ gets opened as a child node here first. Nothing goes into a developer's queue without being in this list.
Layer 2 โ The Bug Node
Each bug gets its own node with a standard structure:
๐ BUG โ [Short, specific description]
Status: [Reported / Triaged / In Fix /
Fix Ready / Verified / Won't Fix / Deferred]
Priority: [Critical / High / Medium / Low]
Owner: [Developer assigned]
Reported by: [Name or role]
Deadline: [Expected fix date]
๐ BUG DETAIL
Environment: [Production / Staging โ URL โ version]
Browser/Device: [Chrome 122 / iPhone 15 / etc.]
Account type: [Admin / Standard / Trial / etc.]
Steps to reproduce:
1. [Step 1]
2. [Step 2]
3. [Step 3]
Expected behavior:
[What should have happened]
Actual behavior:
[What actually happened]
Screenshot/Recording: [Link or attachment]
Console error: [Copy if available]
Frequency: [Always / Sometimes / Rare]
๐ง DEVELOPER NOTE
[Root cause, fix approach, PR link]
PR: [Link]
Fix deployed to: [Staging / Production]
Fix version: [Branch or tag]
โ
VERIFICATION
[ ] Fix confirmed in [environment]
[ ] Original steps no longer reproduce the issue
[ ] Regression check done
Verified by: [Name] โ Date: [Date]
Node closed: [Date]Bug Statuses: The Full Lifecycle
๐ด Reported โ filed, not yet reviewed
๐ก Triaged โ reviewed, priority set, developer assigned
๐ต In Fix โ actively being worked on
๐ฃ Fix Ready โ PR merged, waiting for verification
โ
Verified โ confirmed fixed, node closed
โธ Deferred โ not fixing this sprint, moved to backlog
โ Won't Fix โ accepted behavior or out of scope,
reason documentedEach status change gets a brief note in the description. "Triaged: reproducing consistently in Chrome on mobile, assigned to Mehmet, targeting this sprint." "Fix Ready: PR #83 merged to staging, ready for QA." These notes mean anyone can open the node and immediately understand where things stand without asking.
Triage: The Step Most Teams Skip
The gap between "Reported" and "In Fix" is where bug tracking most commonly breaks down. A bug gets reported and someone immediately starts fixing it โ without confirming the priority, the scope, or even whether it can be reproduced.
Triage is a 2-minute step that prevents significant waste:
TRIAGE CHECKLIST (before assigning to a developer)
[ ] Can the bug be reproduced with the
provided steps?
If no โ request more detail, leave in
Reported status
[ ] Is this actually a bug or expected behavior?
If expected โ mark Won't Fix, document why,
close the node
[ ] What is the impact?
Critical: blocks core functionality or
affects all users
High: significant friction, no workaround
Medium: noticeable issue, workaround exists
Low: cosmetic or edge case
[ ] Which sprint does this belong in?
Critical โ current sprint, displaces
lower priority work if needed
High โ current sprint if capacity allows
Medium/Low โ backlog, next sprint planning
[ ] Who is the right owner?
Assign now. Don't leave it unowned.Triage doesn't require a meeting. It requires one person with context โ usually a lead developer or product manager โ spending two minutes per bug to make these decisions.
Issue Tracking Beyond Bugs
Not everything that needs tracking is a bug. Product issues, infrastructure concerns, performance degradations, and customer-reported problems all need the same structured tracking.
The same node template works for non-bug issues with minor adjustments to the detail section:
๐ ISSUE โ [Short description]
Type: [Performance / Infrastructure /
UX Problem / Data Issue / Security /
Customer Report]
Status: [same as bug statuses]
Priority: [same scale]
Owner: [assigned person]
๐ ISSUE DETAIL
What is happening:
[Description of the problem]
Impact:
[Who is affected, how many users, what
functionality is impaired]
When it started:
[Date first observed, any trigger event]
Evidence:
[Logs, screenshots, monitoring alerts, links]
[Rest of template: Developer Note,
Verification โ same as bug template]The Weekly Bug Review
Once a week โ typically at sprint start โ a 15-minute bug review keeps the list healthy:
WEEKLY BUG REVIEW
1. New bugs reported since last review
โ Triage each: reproduce? priority? owner? sprint?
2. Bugs currently In Fix
โ On track for deadline?
โ Any blockers to escalate?
3. Fix Ready bugs waiting for verification
โ Who needs to verify and by when?
4. Deferred bugs from previous sprints
โ Still valid? Priority changed?
โ Add to this sprint's backlog if warranted
5. Won't Fix candidates
โ Any open bugs that are actually
expected behavior?
โ Close them with documentationThis 15 minutes keeps the bug list from becoming a graveyard of stale, unactionable issues. A bug list that hasn't been reviewed in three weeks isn't a tracking system โ it's an archive.
Closing Criteria
A bug node closes when three conditions are met: the fix is deployed to the appropriate environment, the person who reported the bug (or a designated QA reviewer) has confirmed the fix works with the original reproduction steps, and a regression check has been done to confirm the fix didn't break anything adjacent.
Critically: the developer doesn't close the bug. The verifier does. This distinction is what separates "I think it's fixed" from "it's verified as fixed."
Final Thought
Bug and issue tracking with a consistent model doesn't require a dedicated bug tracking tool. What it requires is a structure that every reported issue passes through โ so that nothing gets lost, priority is explicit, fixes get verified, and the team has a clear picture of what's open at any moment.
In Alios, the bug list node and individual bug nodes with the template above provide that structure. Reports stop disappearing into Slack. Duplicates stop piling up. Fixes get confirmed before they're called done.