Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ Please choose versions by [Semantic Versioning](http://semver.org/).
* MINOR version when you add functionality in a backwards-compatible manner, and
* PATCH version when you make backwards-compatible bug fixes.

## Unreleased

- feat(goal): align `AvailableGoalStatuses` with task statuses — `next, in_progress, backlog, hold, aborted` accepted alongside legacy `active, completed, on_hold` (kept as backward-compat aliases). `goal set status in_progress` etc. now succeed; existing vault files using either set continue to validate. Unblocks task-orchestrator drag-and-drop on the Goals view (bborbe/task-orchestrator#19).

## v0.89.0

- feat(launch-goal): add new `/vault-cli:launch-goal` interview-driven goal framing command — discovery → fan-out exploration (5 parallel semantic searches + duplicate-check gate) → 3-lens framing (parallel subagents → top-3 candidates) → sharpen → draft-to-disk with `status: draft` + Obsidian link → parallel verify (Adversarial Laziness Test + outcome traceability + hedge-word grep) → audit fan-out (goal-auditor + graph-auditor + late dup-check) → status flip on PASS. Resolves the "create-goal jumps straight to writing" failure mode by forcing an outcome-sentence confirmation gate before file creation. Mirrors `/launch-agent` shape; positions as the rigorous front door beside `create-goal`'s template fast-path
Expand Down
31 changes: 27 additions & 4 deletions pkg/domain/goal.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,41 @@ func NewGoal(data map[string]any, meta FileMetadata, content Content) *Goal {
}

// GoalStatus represents the status of a goal.
//
// The enum is aligned with the task status taxonomy so a single mental model
// and a single UI control set (e.g. task-orchestrator's Kanban columns) can
// act on both tasks and goals. The original 3 values (active, completed,
// on_hold) are retained as accepted aliases for backward compatibility with
// existing goal files: active ↔ in_progress semantically, on_hold ↔ hold
// semantically. New writes from agents are expected to use the new canonical
// values; reads tolerate both.
type GoalStatus string

const (
GoalStatusActive GoalStatus = "active"
GoalStatusCompleted GoalStatus = "completed"
GoalStatusOnHold GoalStatus = "on_hold"
GoalStatusNext GoalStatus = "next"
GoalStatusInProgress GoalStatus = "in_progress"
GoalStatusBacklog GoalStatus = "backlog"
GoalStatusCompleted GoalStatus = "completed"
GoalStatusHold GoalStatus = "hold"
GoalStatusAborted GoalStatus = "aborted"

// Legacy values — accepted on read + write for backward compatibility.
// New code should prefer GoalStatusInProgress / GoalStatusHold.
GoalStatusActive GoalStatus = "active"
GoalStatusOnHold GoalStatus = "on_hold"
)

// AvailableGoalStatuses lists all valid canonical goal status values.
// Includes both the new task-aligned set and the legacy 3-value set so
// existing vault files (which may use either) continue to validate.
var AvailableGoalStatuses = GoalStatuses{
GoalStatusActive,
GoalStatusNext,
GoalStatusInProgress,
GoalStatusBacklog,
GoalStatusCompleted,
GoalStatusHold,
GoalStatusAborted,
GoalStatusActive,
GoalStatusOnHold,
}

Expand Down
Loading