Documentation
¶
Index ¶
- Constants
- func ApplyToolConstraints(names []string, policy NormalizedToolPolicy) []string
- func ApplyToolPolicy(base []string, policy NormalizedToolPolicy) []string
- func BuildTaskPrompt(task BoardTask, proj Project, profile WorkerProfile, skills ...SkillContent) string
- func BuiltinWorkerProfiles() map[string]WorkerProfile
- func CronPromptContext(workspaceDir string, item Project) string
- func KnownToolGroups(known map[string]struct{}) map[string][]string
- func PhaseAwareProjectPromptContext(item Project, state *ProjectState) string
- func ProjectPromptContext(item Project) string
- func RenderPromptContext(item Project, opts PromptContextOptions) string
- type Activity
- type ActivityAppendInput
- type Board
- type BoardTask
- type BoardUpdateInput
- type Brief
- type BriefUpdateInput
- type CreateInput
- type DispatchReport
- type GitHubAuthChecker
- type NormalizedToolPolicy
- type Orchestrator
- func (o *Orchestrator) DispatchReview(ctx context.Context, projectID string) (DispatchReport, error)
- func (o *Orchestrator) DispatchTodo(ctx context.Context, projectID string) (DispatchReport, error)
- func (o *Orchestrator) PlanTasks(ctx context.Context, projectID string) ([]BoardTask, error)
- func (o *Orchestrator) SetSkillResolver(r SkillResolver)
- type Project
- type ProjectState
- type ProjectStateUpdateInput
- type PromptContextOptions
- type SkillContent
- type SkillResolver
- type Store
- func (s *Store) ActivityPath(projectID string) string
- func (s *Store) AppendActivity(projectID string, input ActivityAppendInput) (Activity, error)
- func (s *Store) Archive(id string) (Project, error)
- func (s *Store) BoardPath(projectID string) string
- func (s *Store) BriefPath(id string) string
- func (s *Store) Create(input CreateInput) (Project, error)
- func (s *Store) Delete(id string) error
- func (s *Store) DeleteAll() (int, error)
- func (s *Store) FinalizeBrief(id string, sessionStore *session.Store) (Project, Brief, error)
- func (s *Store) Get(id string) (Project, error)
- func (s *Store) GetBoard(projectID string) (Board, error)
- func (s *Store) GetBrief(id string) (Brief, error)
- func (s *Store) GetState(projectID string) (ProjectState, error)
- func (s *Store) List() ([]Project, error)
- func (s *Store) ListActivity(projectID string, limit int) ([]Activity, error)
- func (s *Store) ListRecentActivity(projectID string) ([]Activity, error)
- func (s *Store) ProjectDir(projectID string) string
- func (s *Store) ProjectFilePath(projectID, name string) string
- func (s *Store) StatePath(projectID string) string
- func (s *Store) Update(id string, input UpdateInput) (Project, error)
- func (s *Store) UpdateBoard(projectID string, input BoardUpdateInput) (Board, error)
- func (s *Store) UpdateBrief(id string, input BriefUpdateInput) (Brief, error)
- func (s *Store) UpdateState(projectID string, input ProjectStateUpdateInput) (ProjectState, error)
- type SubAgentConfig
- type TaskReport
- type TaskRun
- type TaskRunRequest
- type TaskRunStatus
- type TaskRunner
- type ToolPolicyOptions
- type ToolPolicySpec
- type UpdateInput
- type UpdatePayload
- type WorkerProfile
- type WorkflowBoardState
- type WorkflowEvent
- type WorkflowEventContext
- type WorkflowEventResolution
- type WorkflowExecutionPolicy
- type WorkflowPolicy
- func (p WorkflowPolicy) AllBoardTasksDone(board Board) bool
- func (p WorkflowPolicy) BoardHasStatus(board Board, status string) bool
- func (p WorkflowPolicy) DefaultProjectNextAction(brief Brief) string
- func (p WorkflowPolicy) DefaultProjectState(projectID string) ProjectState
- func (WorkflowPolicy) FilterDispatchableTasks(status string, tasks []BoardTask) []BoardTask
- func (WorkflowPolicy) FirstTaskByStatus(board Board, status string) (BoardTask, bool)
- func (p WorkflowPolicy) HasActiveBriefStatus(status string) bool
- func (p WorkflowPolicy) InitialProjectState(brief Brief) workflowStateUpdate
- func (WorkflowPolicy) IsKickoffMessage(message string) bool
- func (WorkflowPolicy) NormalizeBriefStatus(raw string) string
- func (WorkflowPolicy) NormalizeDispatchStage(raw string) (string, bool)
- func (WorkflowPolicy) NormalizeProjectStatePhase(raw string) string
- func (WorkflowPolicy) NormalizeProjectStateStatus(raw string) string
- func (p WorkflowPolicy) ProjectStateSummary(item Project, state *ProjectState) (status, phase, nextAction string)
- func (WorkflowPolicy) RecoverStalledTasks(tasks []BoardTask) ([]BoardTask, []string, bool)
- func (WorkflowPolicy) ResolveBoardState(board Board) WorkflowBoardState
- func (p WorkflowPolicy) ResolveEvent(event WorkflowEvent, ctx WorkflowEventContext) WorkflowEventResolution
- func (p WorkflowPolicy) ResolveRuntimeState(item Project, state *ProjectState) WorkflowRuntimeState
- func (p WorkflowPolicy) StateInputForProjectStatus(status string) (ProjectStateUpdateInput, bool)
- func (p WorkflowPolicy) StateUpdateForProjectStatus(status string) (workflowStateUpdate, bool)
- func (p WorkflowPolicy) TasksForDispatchStage(board Board, status string) []BoardTask
- type WorkflowRule
- type WorkflowRuntimePolicy
- type WorkflowRuntimeState
- type WorkflowStateTransition
Constants ¶
const ( ActivitySourceSystem = "system" ActivitySourcePM = "pm" ActivitySourceAgent = "agent" )
const ( ActivityKindAssignment = "assignment" ActivityKindAgentReport = "agent_report" ActivityKindBlocker = "blocker" ActivityKindDecision = "decision" ActivityKindReplan = "replan" ActivityKindTaskStatus = "task_status" ActivityKindProjectCreated = "project_created" ActivityKindProjectUpdated = "project_updated" ActivityKindProjectArchived = "project_archived" ActivityKindStateChanged = "state_changed" ActivityKindBoardTaskCreated = "board_task_created" ActivityKindBoardTaskUpdated = "board_task_updated" ActivityKindBranchStatus = "branch_status" ActivityKindReviewStatus = "review_status" ActivityKindTestStatus = "test_status" ActivityKindBuildStatus = "build_status" ActivityKindIssueStatus = "issue_status" ActivityKindPRStatus = "pr_status" )
const ( WorkerKindDefault = "default" WorkerKindCodexCLI = "codex-cli" WorkerKindClaudeCode = "claude-code" )
Variables ¶
This section is empty.
Functions ¶
func ApplyToolConstraints ¶
func ApplyToolConstraints(names []string, policy NormalizedToolPolicy) []string
func ApplyToolPolicy ¶
func ApplyToolPolicy(base []string, policy NormalizedToolPolicy) []string
func BuildTaskPrompt ¶ added in v0.3.0
func BuildTaskPrompt(task BoardTask, proj Project, profile WorkerProfile, skills ...SkillContent) string
BuildTaskPrompt assembles the initial instruction for a task worker. Optional skills are appended as a ## Project Skills section.
func BuiltinWorkerProfiles ¶ added in v0.3.0
func BuiltinWorkerProfiles() map[string]WorkerProfile
func CronPromptContext ¶
func KnownToolGroups ¶
func PhaseAwareProjectPromptContext ¶ added in v0.15.1
func PhaseAwareProjectPromptContext(item Project, state *ProjectState) string
PhaseAwareProjectPromptContext renders project context with planning-mode instructions when the project state is in the "planning" phase.
func ProjectPromptContext ¶
func RenderPromptContext ¶
func RenderPromptContext(item Project, opts PromptContextOptions) string
Types ¶
type Activity ¶ added in v0.3.0
type Activity struct {
ID string `json:"id"`
ProjectID string `json:"project_id"`
TaskID string `json:"task_id,omitempty"`
Source string `json:"source"`
Agent string `json:"agent,omitempty"`
Kind string `json:"kind"`
Status string `json:"status,omitempty"`
Message string `json:"message,omitempty"`
Timestamp string `json:"timestamp"`
Meta map[string]string `json:"meta,omitempty"`
}
type ActivityAppendInput ¶ added in v0.3.0
type Board ¶ added in v0.3.0
type Board struct {
ProjectID string `json:"project_id" yaml:"project_id"`
UpdatedAt string `json:"updated_at,omitempty" yaml:"updated_at,omitempty"`
Columns []string `json:"columns" yaml:"columns"`
Tasks []BoardTask `json:"tasks,omitempty" yaml:"tasks,omitempty"`
Path string `json:"path,omitempty" yaml:"-"`
}
type BoardTask ¶ added in v0.3.0
type BoardTask struct {
ID string `json:"id" yaml:"id"`
Title string `json:"title" yaml:"title"`
Status string `json:"status" yaml:"status"`
Assignee string `json:"assignee,omitempty" yaml:"assignee,omitempty"`
Role string `json:"role,omitempty" yaml:"role,omitempty"`
WorkerKind string `json:"worker_kind,omitempty" yaml:"worker_kind,omitempty"`
Issue string `json:"issue,omitempty" yaml:"issue,omitempty"`
Branch string `json:"branch,omitempty" yaml:"branch,omitempty"`
PR string `json:"pr,omitempty" yaml:"pr,omitempty"`
ReviewApprovedBy string `json:"review_approved_by,omitempty" yaml:"review_approved_by,omitempty"`
ReviewRequired bool `json:"review_required,omitempty" yaml:"review_required,omitempty"`
TestCommand string `json:"test_command,omitempty" yaml:"test_command,omitempty"`
BuildCommand string `json:"build_command,omitempty" yaml:"build_command,omitempty"`
}
type BoardUpdateInput ¶ added in v0.3.0
type Brief ¶
type Brief struct {
ID string `json:"id"`
Title string `json:"title,omitempty"`
Goal string `json:"goal,omitempty"`
Kind string `json:"kind,omitempty"`
Genre string `json:"genre,omitempty"`
TargetLength string `json:"target_length,omitempty"`
Cadence string `json:"cadence,omitempty"`
TargetInstallments string `json:"target_installments,omitempty"`
Premise string `json:"premise,omitempty"`
PlotSeed string `json:"plot_seed,omitempty"`
StylePreferences string `json:"style_preferences,omitempty"`
Constraints []string `json:"constraints,omitempty"`
MustHave []string `json:"must_have,omitempty"`
MustAvoid []string `json:"must_avoid,omitempty"`
OpenQuestions []string `json:"open_questions,omitempty"`
Decisions []string `json:"decisions,omitempty"`
Status string `json:"status,omitempty"`
Summary string `json:"summary,omitempty"`
Body string `json:"body,omitempty"`
Path string `json:"path,omitempty"`
}
type BriefUpdateInput ¶
type BriefUpdateInput struct {
Title *string
Goal *string
Kind *string
Genre *string
TargetLength *string
Cadence *string
TargetInstallments *string
Premise *string
PlotSeed *string
StylePreferences *string
Constraints []string
MustHave []string
MustAvoid []string
OpenQuestions []string
Decisions []string
Status *string
Summary *string
Body *string
}
type CreateInput ¶
type DispatchReport ¶ added in v0.3.0
type GitHubAuthChecker ¶ added in v0.3.0
func DefaultGitHubAuthChecker ¶ added in v0.4.0
func DefaultGitHubAuthChecker() GitHubAuthChecker
type NormalizedToolPolicy ¶
type NormalizedToolPolicy struct {
ToolsAllow []string
ToolsAllowGroups []string
ToolsAllowPatterns []string
ToolsDeny []string
ToolsRiskMax string
AllowedTools []string
UnknownTools []string
UnknownGroups []string
InvalidPatterns []string
UnknownDeny []string
InvalidRiskMax bool
HasAllowSource bool
HasPolicy bool
}
func NormalizeToolPolicy ¶
func NormalizeToolPolicy(spec ToolPolicySpec, known map[string]struct{}, opts ToolPolicyOptions) NormalizedToolPolicy
type Orchestrator ¶ added in v0.3.0
type Orchestrator struct {
// contains filtered or unexported fields
}
func NewOrchestrator ¶ added in v0.3.0
func NewOrchestrator(store *Store, runner TaskRunner) *Orchestrator
func NewOrchestratorWithGitHubAuthChecker ¶ added in v0.3.0
func NewOrchestratorWithGitHubAuthChecker(store *Store, runner TaskRunner, checker GitHubAuthChecker) *Orchestrator
func (*Orchestrator) DispatchReview ¶ added in v0.3.0
func (o *Orchestrator) DispatchReview(ctx context.Context, projectID string) (DispatchReport, error)
func (*Orchestrator) DispatchTodo ¶ added in v0.3.0
func (o *Orchestrator) DispatchTodo(ctx context.Context, projectID string) (DispatchReport, error)
func (*Orchestrator) PlanTasks ¶ added in v0.15.0
PlanTasks calls the LLM to generate board tasks from the project brief and state. Returns a list of tasks with status="todo" ready for dispatch.
func (*Orchestrator) SetSkillResolver ¶ added in v0.15.0
func (o *Orchestrator) SetSkillResolver(r SkillResolver)
SetSkillResolver sets the resolver used to inject project skill content into task prompts. May be nil.
type Project ¶
type Project struct {
ID string `json:"id" yaml:"id"`
Name string `json:"name" yaml:"name"`
Type string `json:"type" yaml:"type"`
Status string `json:"status" yaml:"status"`
GitRepo string `json:"git_repo,omitempty" yaml:"git_repo,omitempty"`
SourcePath string `json:"source_path,omitempty" yaml:"source_path,omitempty"`
CreatedAt string `json:"created_at" yaml:"created_at"`
UpdatedAt string `json:"updated_at" yaml:"updated_at"`
Objective string `json:"objective,omitempty" yaml:"objective,omitempty"`
ToolsAllow []string `json:"tools_allow,omitempty" yaml:"tools_allow,omitempty"`
ToolsAllowGroups []string `json:"tools_allow_groups,omitempty" yaml:"tools_allow_groups,omitempty"`
ToolsAllowPatterns []string `json:"tools_allow_patterns,omitempty" yaml:"tools_allow_patterns,omitempty"`
ToolsDeny []string `json:"tools_deny,omitempty" yaml:"tools_deny,omitempty"`
ToolsRiskMax string `json:"tools_risk_max,omitempty" yaml:"tools_risk_max,omitempty"`
SkillsAllow []string `json:"skills_allow,omitempty" yaml:"skills_allow,omitempty"`
WorkflowProfile string `json:"workflow_profile,omitempty" yaml:"workflow_profile,omitempty"`
WorkflowRules []WorkflowRule `json:"workflow_rules,omitempty" yaml:"workflow_rules,omitempty"`
MCPServers []string `json:"mcp_servers,omitempty" yaml:"mcp_servers,omitempty"`
SecretsRefs []string `json:"secrets_refs,omitempty" yaml:"secrets_refs,omitempty"`
ExecutionMode string `json:"execution_mode,omitempty" yaml:"execution_mode,omitempty"`
MaxPhases int `json:"max_phases,omitempty" yaml:"max_phases,omitempty"`
SubAgents []SubAgentConfig `json:"sub_agents,omitempty" yaml:"sub_agents,omitempty"`
SessionID string `json:"session_id,omitempty" yaml:"session_id,omitempty"`
Body string `json:"body,omitempty" yaml:"-"`
Path string `json:"path,omitempty" yaml:"-"`
}
func (Project) WorkingDir ¶ added in v0.15.0
WorkingDir returns the project's working directory. If SourcePath is set, returns it; otherwise returns the metadata Path.
type ProjectState ¶
type ProjectState struct {
ProjectID string `json:"project_id"`
Goal string `json:"goal,omitempty"`
Phase string `json:"phase,omitempty"`
Status string `json:"status,omitempty"`
PhaseNumber int `json:"phase_number,omitempty"`
NextAction string `json:"next_action,omitempty"`
RemainingTasks []string `json:"remaining_tasks,omitempty"`
CompletionSummary string `json:"completion_summary,omitempty"`
LastRunSummary string `json:"last_run_summary,omitempty"`
LastRunAt string `json:"last_run_at,omitempty"`
StopReason string `json:"stop_reason,omitempty"`
Body string `json:"body,omitempty"`
Path string `json:"path,omitempty"`
}
type ProjectStateUpdateInput ¶
type PromptContextOptions ¶
type SkillContent ¶ added in v0.15.0
SkillContent holds the resolved name and body of a single skill.
type SkillResolver ¶ added in v0.15.0
type SkillResolver interface {
ResolveSkills(names []string) []SkillContent
}
SkillResolver resolves skill names into their content for injection into task prompts. Implementations live outside the project package to avoid importing the skill or extensions packages.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
func (*Store) ActivityPath ¶ added in v0.3.0
func (*Store) AppendActivity ¶ added in v0.3.0
func (s *Store) AppendActivity(projectID string, input ActivityAppendInput) (Activity, error)
func (*Store) DeleteAll ¶ added in v0.14.0
DeleteAll permanently removes all project directories from disk.
func (*Store) FinalizeBrief ¶
func (*Store) ListActivity ¶ added in v0.3.0
func (*Store) ListRecentActivity ¶ added in v0.3.0
func (*Store) ProjectDir ¶ added in v0.15.0
ProjectDir returns the filesystem path for a project's directory.
func (*Store) ProjectFilePath ¶
func (*Store) UpdateBoard ¶ added in v0.3.0
func (s *Store) UpdateBoard(projectID string, input BoardUpdateInput) (Board, error)
func (*Store) UpdateBrief ¶
func (s *Store) UpdateBrief(id string, input BriefUpdateInput) (Brief, error)
func (*Store) UpdateState ¶
func (s *Store) UpdateState(projectID string, input ProjectStateUpdateInput) (ProjectState, error)
type SubAgentConfig ¶ added in v0.15.0
type TaskReport ¶ added in v0.3.0
type TaskReport struct {
Status string
Summary string
Tests string
Build string
Issue string
Branch string
PR string
Notes string
}
func ParseTaskReport ¶ added in v0.3.0
func ParseTaskReport(raw string) TaskReport
type TaskRunRequest ¶ added in v0.3.0
type TaskRunStatus ¶ added in v0.3.0
type TaskRunStatus string
const ( TaskRunStatusAccepted TaskRunStatus = "accepted" TaskRunStatusRunning TaskRunStatus = "running" TaskRunStatusCompleted TaskRunStatus = "completed" TaskRunStatusFailed TaskRunStatus = "failed" TaskRunStatusCanceled TaskRunStatus = "canceled" )
type TaskRunner ¶ added in v0.3.0
type ToolPolicyOptions ¶
type ToolPolicyOptions struct {
ExpandAllKnownWhenPolicyWithoutAllowSource bool
}
type ToolPolicySpec ¶
type ToolPolicySpec struct {
ToolsAllow []string
ToolsAllowExists bool
ToolsAllowGroups []string
ToolsAllowGroupsExists bool
ToolsAllowPatterns []string
ToolsAllowPatternsExists bool
ToolsDeny []string
ToolsDenyExists bool
ToolsRiskMax string
ToolsRiskMaxExists bool
}
func (ToolPolicySpec) HasAllowSource ¶
func (s ToolPolicySpec) HasAllowSource() bool
func (ToolPolicySpec) HasPolicy ¶
func (s ToolPolicySpec) HasPolicy() bool
type UpdateInput ¶
type UpdateInput struct {
Name *string
Type *string
Status *string
GitRepo *string
SourcePath *string
Objective *string
Instructions *string
ExecutionMode *string
MaxPhases *int
SubAgents []SubAgentConfig
SessionID *string
ToolsAllow []string
ToolsAllowGroups []string
ToolsAllowPatterns []string
ToolsDeny []string
ToolsRiskMax *string
SkillsAllow []string
WorkflowProfile *string
WorkflowRules []WorkflowRule
MCPServers []string
SecretsRefs []string
}
type UpdatePayload ¶
type UpdatePayload struct {
ProjectID string `json:"project_id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Status *string `json:"status,omitempty"`
GitRepo *string `json:"git_repo,omitempty"`
SourcePath *string `json:"source_path,omitempty"`
Objective *string `json:"objective,omitempty"`
Instructions *string `json:"instructions,omitempty"`
ExecutionMode *string `json:"execution_mode,omitempty"`
MaxPhases *int `json:"max_phases,omitempty"`
SubAgents []SubAgentConfig `json:"sub_agents,omitempty"`
ToolsAllow []string `json:"tools_allow,omitempty"`
ToolsAllowGroups []string `json:"tools_allow_groups,omitempty"`
ToolsAllowPatterns []string `json:"tools_allow_patterns,omitempty"`
ToolsDeny []string `json:"tools_deny,omitempty"`
ToolsRiskMax *string `json:"tools_risk_max,omitempty"`
SkillsAllow []string `json:"skills_allow,omitempty"`
WorkflowProfile *string `json:"workflow_profile,omitempty"`
WorkflowRules []WorkflowRule `json:"workflow_rules,omitempty"`
MCPServers []string `json:"mcp_servers,omitempty"`
SecretsRefs []string `json:"secrets_refs,omitempty"`
}
func (UpdatePayload) ToUpdateInput ¶
func (p UpdatePayload) ToUpdateInput() UpdateInput
type WorkerProfile ¶ added in v0.3.0
type WorkerProfile struct {
Kind string
ExecutorName string
Command string
Args []string
Description string
}
func ResolveWorkerProfile ¶ added in v0.3.0
func ResolveWorkerProfile(task BoardTask) (WorkerProfile, error)
func ResolveWorkerProfileForProject ¶ added in v0.12.0
func ResolveWorkerProfileForProject(project Project, task BoardTask) (WorkerProfile, error)
type WorkflowBoardState ¶ added in v0.15.0
type WorkflowBoardState struct {
TaskCount int
TodoCount int
InProgressCount int
ReviewCount int
DoneCount int
}
func (WorkflowBoardState) AllDone ¶ added in v0.15.0
func (s WorkflowBoardState) AllDone() bool
func (WorkflowBoardState) CountForStatus ¶ added in v0.15.0
func (s WorkflowBoardState) CountForStatus(status string) int
func (WorkflowBoardState) HasDispatchableTasks ¶ added in v0.15.0
func (s WorkflowBoardState) HasDispatchableTasks() bool
func (WorkflowBoardState) HasInProgressTasks ¶ added in v0.15.0
func (s WorkflowBoardState) HasInProgressTasks() bool
func (WorkflowBoardState) IsEmpty ¶ added in v0.15.0
func (s WorkflowBoardState) IsEmpty() bool
type WorkflowEvent ¶ added in v0.15.0
type WorkflowEvent string
const ( WorkflowEventKickoffRequested WorkflowEvent = "kickoff_requested" WorkflowEventBriefFinalized WorkflowEvent = "brief_finalized" WorkflowEventPlanningRequested WorkflowEvent = "planning_requested" )
type WorkflowEventContext ¶ added in v0.15.0
type WorkflowEventContext struct {
UserMessage string
ProjectID string
Project Project
State *ProjectState
Brief Brief
}
type WorkflowEventResolution ¶ added in v0.15.0
type WorkflowEventResolution struct {
RuntimeState WorkflowRuntimeState
Transition WorkflowStateTransition
CreateDedicatedSession bool
PlanningReady bool
}
type WorkflowExecutionPolicy ¶ added in v0.12.0
type WorkflowExecutionPolicy struct {
Profile string
DefaultWorkerKind string
ReviewWorkerKind string
RequireGitHubAuth bool
RequireTests bool
RequireBuild bool
RequireIssue bool
RequireBranch bool
RequirePR bool
}
func ResolveWorkflowExecutionPolicy ¶ added in v0.12.0
func ResolveWorkflowExecutionPolicy(project Project) WorkflowExecutionPolicy
type WorkflowPolicy ¶ added in v0.6.0
type WorkflowPolicy struct{}
var DefaultWorkflowPolicy WorkflowPolicy
func (WorkflowPolicy) AllBoardTasksDone ¶ added in v0.6.0
func (p WorkflowPolicy) AllBoardTasksDone(board Board) bool
func (WorkflowPolicy) BoardHasStatus ¶ added in v0.6.0
func (p WorkflowPolicy) BoardHasStatus(board Board, status string) bool
func (WorkflowPolicy) DefaultProjectNextAction ¶ added in v0.6.0
func (p WorkflowPolicy) DefaultProjectNextAction(brief Brief) string
func (WorkflowPolicy) DefaultProjectState ¶ added in v0.6.0
func (p WorkflowPolicy) DefaultProjectState(projectID string) ProjectState
func (WorkflowPolicy) FilterDispatchableTasks ¶ added in v0.6.0
func (WorkflowPolicy) FilterDispatchableTasks(status string, tasks []BoardTask) []BoardTask
func (WorkflowPolicy) FirstTaskByStatus ¶ added in v0.6.0
func (WorkflowPolicy) FirstTaskByStatus(board Board, status string) (BoardTask, bool)
func (WorkflowPolicy) HasActiveBriefStatus ¶ added in v0.6.0
func (p WorkflowPolicy) HasActiveBriefStatus(status string) bool
func (WorkflowPolicy) InitialProjectState ¶ added in v0.6.0
func (p WorkflowPolicy) InitialProjectState(brief Brief) workflowStateUpdate
func (WorkflowPolicy) IsKickoffMessage ¶ added in v0.6.0
func (WorkflowPolicy) IsKickoffMessage(message string) bool
func (WorkflowPolicy) NormalizeBriefStatus ¶ added in v0.6.0
func (WorkflowPolicy) NormalizeBriefStatus(raw string) string
func (WorkflowPolicy) NormalizeDispatchStage ¶ added in v0.6.0
func (WorkflowPolicy) NormalizeDispatchStage(raw string) (string, bool)
func (WorkflowPolicy) NormalizeProjectStatePhase ¶ added in v0.6.0
func (WorkflowPolicy) NormalizeProjectStatePhase(raw string) string
func (WorkflowPolicy) NormalizeProjectStateStatus ¶ added in v0.6.0
func (WorkflowPolicy) NormalizeProjectStateStatus(raw string) string
func (WorkflowPolicy) ProjectStateSummary ¶ added in v0.6.0
func (p WorkflowPolicy) ProjectStateSummary(item Project, state *ProjectState) (status, phase, nextAction string)
func (WorkflowPolicy) RecoverStalledTasks ¶ added in v0.6.0
func (WorkflowPolicy) RecoverStalledTasks(tasks []BoardTask) ([]BoardTask, []string, bool)
func (WorkflowPolicy) ResolveBoardState ¶ added in v0.15.0
func (WorkflowPolicy) ResolveBoardState(board Board) WorkflowBoardState
func (WorkflowPolicy) ResolveEvent ¶ added in v0.15.0
func (p WorkflowPolicy) ResolveEvent(event WorkflowEvent, ctx WorkflowEventContext) WorkflowEventResolution
func (WorkflowPolicy) ResolveRuntimeState ¶ added in v0.15.0
func (p WorkflowPolicy) ResolveRuntimeState(item Project, state *ProjectState) WorkflowRuntimeState
func (WorkflowPolicy) StateInputForProjectStatus ¶ added in v0.15.0
func (p WorkflowPolicy) StateInputForProjectStatus(status string) (ProjectStateUpdateInput, bool)
func (WorkflowPolicy) StateUpdateForProjectStatus ¶ added in v0.15.0
func (p WorkflowPolicy) StateUpdateForProjectStatus(status string) (workflowStateUpdate, bool)
func (WorkflowPolicy) TasksForDispatchStage ¶ added in v0.15.0
func (p WorkflowPolicy) TasksForDispatchStage(board Board, status string) []BoardTask
type WorkflowRule ¶ added in v0.12.0
type WorkflowRuntimePolicy ¶ added in v0.13.0
func ResolveWorkflowRuntimePolicy ¶ added in v0.13.0
func ResolveWorkflowRuntimePolicy(project Project) WorkflowRuntimePolicy
type WorkflowRuntimeState ¶ added in v0.15.0
type WorkflowRuntimeState struct {
ProjectStatus string
Status string
Phase string
NextAction string
PhaseNumber int
}
func (WorkflowRuntimeState) IsProjectArchived ¶ added in v0.15.0
func (s WorkflowRuntimeState) IsProjectArchived() bool
func (WorkflowRuntimeState) PhaseLimitReached ¶ added in v0.15.0
func (s WorkflowRuntimeState) PhaseLimitReached(maxPhases int) bool
func (WorkflowRuntimeState) PlanningReady ¶ added in v0.15.0
func (s WorkflowRuntimeState) PlanningReady() bool
type WorkflowStateTransition ¶ added in v0.15.0
type WorkflowStateTransition struct {
Update workflowStateUpdate
Goal string
RemainingTasks []string
}
func (WorkflowStateTransition) StateInput ¶ added in v0.15.0
func (t WorkflowStateTransition) StateInput() ProjectStateUpdateInput