package cmd import ( "fmt" "github.com/fatih/color" "github.com/spf13/cobra" "github.com/spf13/viper" "gmgauthier.com/grokkit/internal/git" "gmgauthier.com/grokkit/internal/grok" ) var reviewCmd = &cobra.Command{ Use: "review [path]", Short: "Review the current repository or directory", Run: func(cmd *cobra.Command, args []string) { model := viper.GetString("model") client := grok.NewClient() if !git.IsRepo() { color.Yellow("Not a git repo — basic analysis only.") } status := git.Run([]string{"status", "--short"}) unstagedDiff := git.Run([]string{"diff"}) files := git.Run([]string{"ls-files"}) if files == "" { files = "No tracked files." } context := fmt.Sprintf(`Git status:\n\n%s\n\nUnstaged diff:\n%s\n\nTracked files:\n%s`, status, unstagedDiff, files) systemPrompt := `You are an expert code reviewer. Give a concise summary + 3–5 actionable improvements.` messages := []map[string]string{ {"role": "system", "content": systemPrompt}, {"role": "user", "content": "Review this project:\\n" + context}, } review := client.Stream(messages, model) fmt.Println(color.YellowString("🤖 AI Code Review:")) fmt.Println() fmt.Print(color.CyanString(review)) fmt.Println() }, }