Description
Goal
Sprints aren't always needed. Sometimes it's simpler to work ticket by ticket. Add a toggle in each project's settings to choose between:
- Sprint mode (sprints enabled): work runs sprint by sprint, as it does today.
- Non-sprint mode (sprints disabled): tickets are completed one by one, with no active sprint.
Behavior
- New Sprints toggle in project settings. Only users who can edit project settings can change it.
- Disabled by default for new projects.
- Enabling sprints is always allowed.
- Disabling sprints is only allowed when the project has no active sprint. While a sprint is active, the toggle is disabled and explains why ("Complete the active sprint to disable sprints").
- In non-sprint mode:
- A sprint cannot be started. Active-sprint views and controls are hidden or show their no-active-sprint state (see TRACK-23).
- Work is picked up and completed one issue at a time.
- Planned (future) sprints still exist and can be created, edited, reordered and have issues assigned to them.
- Issues in planned sprints can still be picked up and completed individually without starting the sprint.
- Toggling in either direction never changes completed sprint history or planned sprints.
Acceptance criteria
- The setting is stored per project, with a migration. New projects default to disabled. Existing projects that have an active sprint must migrate as enabled so the invariant holds.
- The server enforces the rules through the web UI, REST API and MCP tools:
- Disabling sprints while a sprint is active returns a validation error.
- Starting a sprint while sprints are disabled is rejected.
- The setting can be read and changed through the API and MCP, not only the web UI.
- The UI shows or hides sprint-mode-only controls to match the setting. Sprint planning and completed sprint history stay reachable in both modes.
- Changing the setting is recorded in the project changelog and pushed to other open clients via realtime events.
- Tests cover: permission to toggle, disabling blocked by an active sprint, starting a sprint rejected when disabled, planned and completed sprints unchanged across toggles, and completing an issue from a planned sprint in non-sprint mode.
Open question
In non-sprint mode, when an issue that belongs to a planned sprint is completed, does it stay attached to that sprint or leave it?
Sub-issues
0Linked issues
0GitHub
0No branches or pull requests linked.
Comments
0No comments.