Superapp / Product requirements / kanban

Stackline · Sprint board — product requirements

Version 3.46 features28 requirements11 Must Open appJSONMarkdown

Stackline Board is a single-sprint kanban board for a product team. Cards move across To do, In progress, Review and Done under workflow rules (WIP limits, blocked flags, assignee and subtask gates), can be filtered and grouped, and every move keeps the sprint progress and burndown in step with the board.

Problem. A team board is only trustworthy if the workflow rules cannot be bypassed and the numbers on screen (column counts, points, sprint progress, burndown) always agree with the cards.

Users

Goals

Out of scope

Contents

Sprint header

Sprint dates, goal, progress and burndown.

FR-HDR-01
Must
The header shows the sprint name, date range, days left, goal, a progress line with bar and a burndown chart with ideal and actual lines.
  • "Sprint 24", chip "6 days left" (tooltip "Sprint ends 25 Oct"), line "12 Oct – 25 Oct 2026 · Today Mon 19 Oct"
  • Goal "Saved cards and promo fixes ready for the Checkout v2 beta"
  • Progress "11 of 57 pts done (19%)"; caption "Burndown · 46 pts left"
  • Burndown has 8 dots; first tooltip "12 Oct: 57 pts remaining", last (hollow) "19 Oct: 46 pts remaining"
FR-HDR-02
Must
Sprint progress and the burndown follow the cards in Done immediately: done points are the sum of points of cards in Done, percentage is done / total rounded, and the last burndown point equals total minus done.
  • PCL-111 (2 pts) to Done: "13 of 57 pts done (23%)", "Burndown · 44 pts left", tooltip "19 Oct: 44 pts remaining", DONE "5" and "13 pts"
  • PCL-109 (3 pts) to Done: "14 of 57 pts done (25%)", "43 pts left"
FR-HDR-03
Should
Total sprint points follow card estimates, and filters never change sprint totals.
  • Setting PCL-117 to 3 points gives "11 of 60 pts done (18%)"
  • With "Only my issues" on, progress stays "11 of 57 pts done (19%)"

Board and cards

Columns, card display, grouping and reset.

FR-BRD-01
Must
Each column header shows its issue count, WIP limit (if any) and story points; a column at its limit is shown in amber. The toolbar and footer show the total number of issues.
  • TO DO 8 · 24 pts (tooltip "No WIP limit"); IN PROGRESS "4 / 4" amber · 19 pts (tooltip "WIP limit 4"); REVIEW "2 / 3" · 3 pts; DONE 4 · 11 pts
  • Order: TO DO PCL-101 to 105, 116, 117, 118; IN PROGRESS PCL-106 to 109; REVIEW PCL-110, 111
  • "18 issues"; footer "Stackline board · 18 issues · build 3.4.0"; TO DO ends with "+ Create issue"
FR-BRD-02
Should
A card shows type glyph, key, title, epic chip, label dots, due chip, subtask meter, priority chevron, points badge and assignee avatar, each with a tooltip.
  • PCL-101: tooltips "Story", "Epic: Checkout v2", "frontend", "mobile", "Due 23 Oct", "1 of 2 subtasks done", "Priority: High", "5 story points", "Anh Nguyen"
FR-BRD-03
Could
Overdue, due-today, unassigned and unestimated cards are visually distinct.
  • PCL-102: red chip "17 Oct", tooltip "Overdue · was due 17 Oct", "Priority: Urgent", dashed avatar "Unassigned"
  • PCL-108: yellow chip "Today", tooltip "Due today"
  • PCL-117: badge "–", tooltip "Not estimated", "Priority: Low"
FR-BRD-04
Could
A blocked card is marked with a red bar and flag; a done card has a struck-through key and a green tick.
  • PCL-108: tooltip "Flagged as blocked", comment count "2"
  • PCL-112: struck-through key, tick tooltip "Done"
FR-BRD-05
Should
Grouping splits the columns into lanes by assignee (people in order, Unassigned last) or by epic (then "No epic"); None restores one board.
  • Assignee: first lane "Anh Nguyen · 4 issues"; last lane "Unassigned · 2 issues" with PCL-102 and PCL-116; empty cells read "No issues" or "Nothing done yet"
  • Epic: Checkout v2, Onboarding, Reliability, No epic; Reliability holds PCL-107, PCL-108, PCL-113
FR-BRD-06
Could
The reset control restores the seeded sprint and clears all filters.
  • Tooltip "Reset sprint data"; toast "Sprint data restored"

Filters

Mine, assignee, label and search filters.

FR-FLT-01
Must
Only my issues keeps the signed-in user’s cards, shows partial counts and can be cleared.
  • Signed in as Chi Tran (CT); "Showing 3 of 18 issues": PCL-103, PCL-109, PCL-112
  • Headers "1 of 8", "1 of 4 / 4", "0 of 2 / 3" (REVIEW "No issues"), "1 of 4"
  • "Clear filters" restores all 18 cards
FR-FLT-02
Should
Avatar quick-filters combine as OR and include an Unassigned option.
  • AN + BL: "Showing 7 of 18 issues"
  • Unassigned only: PCL-102 and PCL-116, "Showing 2 of 18 issues"
FR-FLT-03
Must
The Labels filter ("SHOW ISSUES WITH ALL OF") keeps only issues carrying every ticked label; the button shows the number ticked.
  • Labels: frontend, backend, payments, mobile, a11y, tech-debt
  • frontend + payments: badge "2", "Showing 2 of 18 issues": PCL-106 and PCL-111
  • frontend + mobile: PCL-101 and PCL-109
FR-FLT-04
Should
Search matches key and summary, case-insensitively.
  • "card": only PCL-106
  • "pcl-11": PCL-110 to PCL-118 (9 issues)
  • "zzz": "Showing 0 of 18 issues"

Moving cards

Drag and menu moves with workflow rules.

FR-MOV-01
Must
A column at its WIP limit refuses any further card and says so; the card stays where it was. While dragging over a full column it shows a red "WIP limit reached" hint.
  • Move PCL-101 to In progress: toast "WIP limit reached for In progress (4)"; header stays "4 / 4"
  • Review limit 3: "WIP limit reached for Review (3)"
FR-MOV-02
Must
A dropped card takes the position it was dropped at, in the same or another column, and the move is logged in Activity and persists after reload.
  • PCL-103 dropped on the top half of PCL-110: toast "PCL-103 moved to Review"; REVIEW reads PCL-103, PCL-110, PCL-111; headers REVIEW "3 / 3" · 4 pts, TO DO 7 · 23 pts
  • Activity "2026-10-19 09:30 Chi Tran moved To do → Review"
  • Re-rank PCL-118 above PCL-101: no toast; Activity "Chi Tran re-ranked in To do to position 1"; still first after reload; TO DO stays 8 · 24 pts
FR-MOV-03
Must
A flagged issue cannot move forward until the flag is removed; removing and re-adding the flag is logged.
  • Status to Review on PCL-108: "PCL-108 is flagged as blocked — remove the flag first"; status unchanged
  • Unflag: toast "Flag removed from PCL-108"; then move succeeds: "PCL-108 moved to Review"
  • Activity: "moved In progress → Review" and "flag removed"
FR-MOV-04
Must
Review requires an assignee: an unassigned issue cannot enter Review and an issue in Review cannot be unassigned.
  • "Assign someone before moving to Review"
  • Unassigning in Review: error under Assignee "Issues in Review need an assignee"; assignee unchanged
  • Assigning shows toast "Assigned to Duc Pham"
FR-MOV-05
Must
Done requires every subtask closed; subtasks of a Done issue cannot be reopened until the issue is reopened.
  • PCL-109 (1/3) to Done: "2 subtasks still open"; stays in IN PROGRESS
  • After ticking all: toast "PCL-109 moved to Done"; DONE "5" and "14 pts"
  • Unticking a subtask of a Done issue: "Reopen the issue before reopening its subtasks"

Issues

Create, edit and discuss issues.

FR-ISS-01
Should
An issue is created inline with a type (Task, Bug…) and a summary of 3–120 characters; it gets the next key and is added at the bottom of To do.
  • "ab": "Summary must be 3–120 characters"
  • "Fix footer links": toast "Created PCL-119"; red Bug glyph, dashed avatar, points "–"; TO DO "9", toolbar "19 issues", progress unchanged
FR-ISS-02
Should
Title, story points (1, 2, 3, 5, 8, 13 or none), priority and labels save on change, update the card and totals, and each change is listed in Activity, newest first.
  • PCL-117: renamed, points – → 3, priority low → high, labels frontend → a11y; TO DO "27 pts"
  • Activity lines such as "priority low → high", "story points — → 3", "labels: a11y"
FR-ISS-03
Should
A due date must fall inside the sprint.
  • 30 Oct 2026: "Due date must be within the sprint (ends 2026-10-25)"
  • 24 Oct 2026 accepted: chip "24 Oct", tooltip "Due 24 Oct"
FR-ISS-04
Should
Subtasks of 2–80 characters can be added and ticked; the card meter follows.
  • "x": "Subtask must be 2–80 characters"; Add is disabled while the input is empty
  • PCL-106 "2 of 3 done" → add "Empty state" → "2 of 4 done" → tick one → card meter "3/4", tooltip "3 of 4 subtasks done"
FR-ISS-05
Could
Comments (up to 1000 characters) are listed newest first; @mentions of unknown people are refused and known ones are highlighted with the person’s name in a tooltip.
  • "Ping @ZZ please": "Unknown mention @ZZ"; text kept
  • "@AN contrast now 4.6:1" with Ctrl+Enter: toast "Comment added"; badge and card icon "1"
FR-ISS-06
Could
An issue has a deep link that opens its dialog; an unknown key reports it.
  • /kanban/issue/PCL-105 opens "Welcome email shows wrong first name"; closing returns to /kanban/ and Back reopens it
  • /kanban/issue/PCL-999: "Issue PCL-999 not found"

Board API

REST access to the board and moves.

FR-API-01
Should
The move endpoint enforces the rules in order — WIP limit, flag, assignee, subtasks — and honours the target index.
  • Board: 18 issues; doing 4/4, review 2/3; totalPoints 57, donePoints 11, burndown ending 46
  • PCL-101 to doing: 409 "WIP limit reached for In progress (4)"
  • PCL-108 to review: 422 "PCL-108 is flagged as blocked — remove the flag first"
  • PCL-116 to review: 422 "Assign someone before moving to Review"
  • PCL-109 to done: 422 "2 subtasks still open"
  • PCL-103 to review at index 0: 200, order PCL-103, PCL-110, PCL-111
FR-API-02
Could
Field validation and unknown keys are reported with specific statuses.
  • Points 4: 400 "Story points must be one of 1, 2, 3, 5, 8, 13"
  • GET unknown issue: 404 "Issue PCL-999 not found"

Non-functional requirements

NFR-01
Must
Data integrity: a refused move or edit leaves the board, counts and sprint totals exactly as they were.
NFR-02
Should
Consistency: the UI and the API show the same rule messages.

Glossary and rules

WIP limitMaximum number of cards a column may hold.
FlaggedMarked as blocked; the issue may not move forward.
BurndownPoints remaining (total minus done) at each sprint day against an ideal line.