RefractTrack Tasks
Tasks
A task is the core unit of work in RefractTrack, always scoped to a single Project and identified by a task code like RPG-12 (its project's prefix plus a sequential number).
Fields
Every task has:
- Title and Description (description supports the Markdown Formatting subset)
- Type —
NormalorBug - Priority —
Low,Medium,High, orCritical(defaults toMedium) - Stage — which Stage (swimlane) the task currently sits in
- Assignee — optional, but required when moving into a stage flagged
requires_assignee - Due date — optional
- Groups — zero or more Groups, a many-to-many tag
- Review status —
pending,approved, orwont_do; see Approvals and Review - Archived state — orthogonal to stage and review status; see Archiving
Bug-specific fields
Tasks with Type = Bug get three extra optional fields, shown and hidden automatically based on the Type radio:
- Expected behavior
- Actual behavior
- Steps to reproduce
These appear on the full task form, the bulk create form (as templates using the same placeholder substitution as title/description), and the simplified reporter submission form. They're cleared server-side whenever a task's type isn't Bug, and are shown in their own "Bug Details" panel on the task detail page when present.
Task codes and auto-linking
Every task has a permanent code (PREFIX-123). Anywhere free text is rendered through the markdown renderer, text matching the PREFIX-123 pattern is automatically scanned and, if it resolves to a real task, turned into a link to that task — see Markdown Formatting. The link is only generated for users who can actually view tasks (tasks:view); otherwise the code is left as plain text rather than pointing somewhere the viewer can't reach.
Creating tasks
- Full task form (
task_form.php) — available to users withtasks:create, exposes every field above. - Reporter form (
report.php) — a simplified "submit a ticket" form for users who only holdtasks:report(typically playtesters/QA). Tickets filed this way always start in the project's first stage, unassigned, at Medium priority, and reporters can only submit to the specific projects they've been granted access to. - Bulk create — see Bulk Task Creation and Saved Lists.
- Clone — any existing task can be duplicated via the Clone action, subject to
tasks:clone.
Editing and moving tasks
- Editing a task's content (title, description, type, priority, groups) requires
tasks:edit:content. - Moving a task between stages — including setting the assignee and due date at the same time — requires
tasks:edit:stage. This can be done from the task detail page, the task edit form, or by dragging the task on the board. - Moving a task into a stage flagged
requires_assignee(by default: In Progress and In Review) always requires picking an assignee first, regardless of which of the above three paths is used. - A task's stage dropdown always includes the task's current stage even if that stage has since been hidden from the board — otherwise saving the form would silently drop it back to a different stage.
Deleting tasks
Permanent deletion (tasks:delete) removes a task outright. A standalone snapshot of every hard-deleted task is preserved in a deleted_task_log table for audit purposes even after the live row is gone. For non-destructive removal from the active board, see Archiving instead.