Documentation
¶
Overview ¶
Package task defines the canonical task types, status enum, and related structures used by all SpecScore-based coordination tools.
Index ¶
- Variables
- func ExtractSlug(cell string) string
- func ParseDash(cell string) string
- func ParseDashKeep(cell string) string
- func ParseDeps(cell string) []string
- func RenderBoard(bv *BoardView) []byte
- func RenderDash(s string) string
- func RenderDashBacktick(s string) string
- func RenderTaskFile(d TaskFileData) []byte
- func StatusEmoji(s TaskStatus) string
- type BoardRow
- type BoardView
- type CreateParams
- type Filter
- type Task
- type TaskFileData
- type TaskStatus
Constants ¶
This section is empty.
Variables ¶
var StatusEmojis = map[TaskStatus]string{
StatusPlanning: "\U0001f4cb",
StatusQueued: "\u23f3",
StatusClaimed: "\U0001f512",
StatusInProgress: "\U0001f535",
StatusCompleted: "\u2705",
StatusFailed: "\u274c",
StatusBlocked: "\U0001f7e1",
StatusAborted: "\u26d4",
}
StatusEmojis maps each task status to its emoji prefix for board rendering.
Functions ¶
func ExtractSlug ¶
ExtractSlug extracts the link text from "[slug](slug/)".
func ParseDash ¶
ParseDash returns empty string for em-dash, otherwise the trimmed cell. Strips surrounding backticks if present (e.g. `agent/run-1`).
func ParseDashKeep ¶
ParseDashKeep returns empty for em-dash, otherwise keeps raw value.
func RenderBoard ¶
RenderBoard renders a BoardView to markdown bytes.
func RenderDashBacktick ¶
RenderDashBacktick wraps non-empty values in backticks, empty becomes em-dash.
func RenderTaskFile ¶
func RenderTaskFile(d TaskFileData) []byte
RenderTaskFile renders a TaskFileData to markdown bytes.
func StatusEmoji ¶
func StatusEmoji(s TaskStatus) string
StatusEmoji returns the emoji prefix for a task status. Returns a question-mark emoji for unknown statuses.
Types ¶
type BoardRow ¶
type BoardRow struct {
Task string
Status TaskStatus
DependsOn []string
Branch string
Agent string
Requester string
Time string // raw time string from board column
StartedAt *time.Time // structured start time (populated by callers)
Duration *time.Duration // structured duration (populated by callers)
}
BoardRow represents a single row in the task board.
type BoardView ¶
type BoardView struct {
Rows []BoardRow
}
BoardView represents a rendered task board.
func ParseBoard ¶
ParseBoard parses a board markdown file into structured data.
type CreateParams ¶
type CreateParams struct {
Slug string
Title string
Parent string
DependsOn []string
Requester string
}
CreateParams holds parameters for creating a new task.
type Filter ¶
type Filter struct {
Status *TaskStatus
Parent *string
}
Filter holds optional filters for listing tasks. Nil pointer fields mean "don't filter on this field."
type Task ¶
type Task struct {
Slug string
Title string
Status TaskStatus
Parent string // parent task slug, empty for root tasks
DependsOn []string
Requester string
Reason string // block/fail/abort reason
Summary string // completion summary
CreatedAt time.Time
UpdatedAt time.Time
}
Task represents a unit of work. Coordination-only fields (Run, Model, ClaimedAt) are NOT included here -- those belong in a separate coordination layer.
type TaskFileData ¶
TaskFileData holds the parsed contents of a task README.md.
func ParseTaskFile ¶
func ParseTaskFile(data []byte) (TaskFileData, error)
ParseTaskFile parses a task README.md into its structured fields.
The expected format is:
# Title Description text ## Dependencies - dep1 - dep2 ## Summary Summary text
type TaskStatus ¶
type TaskStatus string
TaskStatus represents the lifecycle state of a task.
const ( StatusPlanning TaskStatus = "planning" StatusQueued TaskStatus = "queued" StatusClaimed TaskStatus = "claimed" StatusInProgress TaskStatus = "in_progress" StatusCompleted TaskStatus = "completed" StatusFailed TaskStatus = "failed" StatusBlocked TaskStatus = "blocked" StatusAborted TaskStatus = "aborted" )
func ParseStatusCell ¶
func ParseStatusCell(cell string) (TaskStatus, error)
ParseStatusCell parses a status cell like "check-mark `completed`" into TaskStatus.