task

package
v0.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 18, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

README

task

Canonical task types, status enum, and format parsing/rendering for the SpecScore task model.

Contents

File Description
task.go Core types: Task, TaskStatus, CreateParams, Filter, BoardView, BoardRow
taskfile.go Task README.md format: ParseTaskFile, RenderTaskFile
board.go Board markdown table format: ParseBoard, RenderBoard, status emoji mapping

Outstanding Questions

None at this time.

Documentation

Overview

Package task defines the canonical task types, status enum, and related structures used by all SpecScore-based coordination tools.

Index

Constants

This section is empty.

Variables

View Source
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

func ExtractSlug(cell string) string

ExtractSlug extracts the link text from "[slug](slug/)".

func ParseDash

func ParseDash(cell string) string

ParseDash returns empty string for em-dash, otherwise the trimmed cell. Strips surrounding backticks if present (e.g. `agent/run-1`).

func ParseDashKeep

func ParseDashKeep(cell string) string

ParseDashKeep returns empty for em-dash, otherwise keeps raw value.

func ParseDeps

func ParseDeps(cell string) []string

ParseDeps parses a comma-separated dependency list, returning nil for em-dash.

func RenderBoard

func RenderBoard(bv *BoardView) []byte

RenderBoard renders a BoardView to markdown bytes.

func RenderDash

func RenderDash(s string) string

RenderDash returns em-dash for empty strings.

func RenderDashBacktick

func RenderDashBacktick(s string) string

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

func ParseBoard(data []byte) (*BoardView, error)

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

type TaskFileData struct {
	Title       string
	Description string
	DependsOn   []string
	Summary     string
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL