diff --git a/CHANGELOG.md b/CHANGELOG.md index f556502..b17bc2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/pkg/domain/goal.go b/pkg/domain/goal.go index c7e78f5..19ffdeb 100644 --- a/pkg/domain/goal.go +++ b/pkg/domain/goal.go @@ -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, }