MCPcopy Create free account
hub / github.com/driangle/taskmd / runNext

Function runNext

apps/cli/internal/cli/next.go:85–139  ·  view source on GitHub ↗
(cmd *cobra.Command, args []string)

Source from the content-addressed store, hash-verified

83}
84
85func runNext(cmd *cobra.Command, args []string) error {
86 if allProjectsFlag {
87 return runNextAllProjects()
88 }
89
90 flags := GetGlobalFlags()
91 scanDir := ResolveScanDir(args)
92
93 taskScanner := scanner.NewScanner(scanDir, flags.Verbose, flags.IgnoreDirs)
94 result, err := taskScanner.Scan()
95 if err != nil {
96 return fmt.Errorf("scan failed: %w", err)
97 }
98
99 allTasks := result.Tasks
100 makeFilePathsRelative(allTasks, scanDir)
101
102 warnDuplicateIDs(allTasks)
103
104 archivedTasks, err := taskScanner.ScanArchive()
105 if err != nil {
106 return fmt.Errorf("archive scan failed: %w", err)
107 }
108
109 expandNextShortcutFilters()
110
111 phaseOrder := loadPhaseOrder()
112
113 recs, err := next.Recommend(allTasks, next.Options{
114 Limit: nextLimit,
115 Filters: nextFilters,
116 QuickWins: nextQuickWins,
117 Critical: nextCritical,
118 Scope: nextScope,
119 ScopeExact: nextExact,
120 ArchivedTasks: archivedTasks,
121 Phase: nextPhase,
122 PhaseOrder: phaseOrder,
123 StrictPhases: nextStrictPhases,
124 })
125 if err != nil {
126 return err
127 }
128
129 switch nextFormat {
130 case "json":
131 return outputNextJSON(recs)
132 case "yaml":
133 return outputNextYAML(recs)
134 case "table":
135 return outputNextTable(recs)
136 default:
137 return ValidateFormat(nextFormat, []string{"table", "json", "yaml"})
138 }
139}
140
141// ProjectRecommendation wraps a recommendation with project context.
142type ProjectRecommendation struct {

Callers 1

captureNextOutputFunction · 0.85

Calls 13

ScanMethod · 0.95
ScanArchiveMethod · 0.95
runNextAllProjectsFunction · 0.85
GetGlobalFlagsFunction · 0.85
ResolveScanDirFunction · 0.85
makeFilePathsRelativeFunction · 0.85
warnDuplicateIDsFunction · 0.85
loadPhaseOrderFunction · 0.85
outputNextJSONFunction · 0.85
outputNextYAMLFunction · 0.85
outputNextTableFunction · 0.85

Tested by 1

captureNextOutputFunction · 0.68