grokkit/cmd/prdescribe.go
Greg Gauthier 98eb5505a5 chore(headers): add last modified timestamps to source files
Implemented automatic addition of "// Last modified: [timestamp]" headers across command and internal files for better tracking. Updated prompts in agent and edit commands to enforce header format. Added logic to prepend header if missing in generated content. Fixed minor issues like missing newlines at end of files.
2026-02-28 22:47:30 +00:00

39 lines
1.1 KiB
Go

// Last modified: 2026-02-28 22:43:48 GMT
// Current time: 2023-10-05 14:30:00
package cmd
import (
"fmt"
"github.com/fatih/color"
"github.com/spf13/cobra"
"gmgauthier.com/grokkit/config"
"gmgauthier.com/grokkit/internal/git"
"gmgauthier.com/grokkit/internal/grok"
)
var prDescribeCmd = &cobra.Command{
Use: "pr-describe",
Short: "Generate full PR description from current branch",
Run: func(cmd *cobra.Command, args []string) {
diff := git.Run([]string{"diff", "main..HEAD", "--no-color"})
if diff == "" {
diff = git.Run([]string{"diff", "origin/main..HEAD", "--no-color"})
}
if diff == "" {
color.Yellow("No changes on this branch compared to main/origin/main.")
return
}
modelFlag, _ := cmd.Flags().GetString("model")
model := config.GetModel(modelFlag)
client := grok.NewClient()
messages := []map[string]string{
{"role": "system", "content": "Write a professional GitHub PR title + detailed body (changes, motivation, testing notes)."},
{"role": "user", "content": fmt.Sprintf("Diff:\n%s", diff)},
}
color.Yellow("Writing PR description...")
client.Stream(messages, model)
},
}