feat(cmd): add gt goals command skeleton
Create goals.go with basic command structure for viewing strategic goals (epics) with staleness indicators. Includes --json, --status, and --priority flags. Implementation stubs return not-yet-implemented errors. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
60
internal/cmd/goals.go
Normal file
60
internal/cmd/goals.go
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Goal command flags
|
||||||
|
var (
|
||||||
|
goalsJSON bool
|
||||||
|
goalsStatus string
|
||||||
|
goalsPriority string
|
||||||
|
)
|
||||||
|
|
||||||
|
var goalsCmd = &cobra.Command{
|
||||||
|
Use: "goals [goal-id]",
|
||||||
|
GroupID: GroupWork,
|
||||||
|
Short: "View strategic goals (epics) with staleness indicators",
|
||||||
|
Long: `View strategic goals (epics) across the workspace.
|
||||||
|
|
||||||
|
Goals are high-level objectives that organize related work items.
|
||||||
|
This command shows goals with staleness indicators to help identify
|
||||||
|
stale or neglected strategic initiatives.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
gt goals # List all open goals
|
||||||
|
gt goals --json # Output as JSON
|
||||||
|
gt goals --status=all # Show all goals including closed
|
||||||
|
gt goals hq-abc # Show details for a specific goal`,
|
||||||
|
RunE: runGoals,
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
goalsCmd.Flags().BoolVar(&goalsJSON, "json", false, "Output as JSON")
|
||||||
|
goalsCmd.Flags().StringVar(&goalsStatus, "status", "open", "Filter by status (open, closed, all)")
|
||||||
|
goalsCmd.Flags().StringVar(&goalsPriority, "priority", "", "Filter by priority (e.g., P0, P1, P2)")
|
||||||
|
rootCmd.AddCommand(goalsCmd)
|
||||||
|
}
|
||||||
|
|
||||||
|
func runGoals(cmd *cobra.Command, args []string) error {
|
||||||
|
// If arg provided, show specific goal
|
||||||
|
if len(args) > 0 {
|
||||||
|
goalID := args[0]
|
||||||
|
return showGoal(goalID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise list all goals
|
||||||
|
return listGoals()
|
||||||
|
}
|
||||||
|
|
||||||
|
func showGoal(goalID string) error {
|
||||||
|
// TODO: Implement goal details view
|
||||||
|
return fmt.Errorf("goal details not yet implemented: %s", goalID)
|
||||||
|
}
|
||||||
|
|
||||||
|
func listGoals() error {
|
||||||
|
// TODO: Implement goals listing with staleness
|
||||||
|
return fmt.Errorf("goals listing not yet implemented")
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user