Rebrand agent UX to GitHub Copilot and improve prompt quality#7194
Rebrand agent UX to GitHub Copilot and improve prompt quality#7194wbreza merged 1 commit intoAzure:mainfrom
Conversation
64dc840 to
562c7c0
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates azd’s agent-related UX copy to use GitHub Copilot branding (and “Preview” wording), while also refining interactive prompts so “type ? for help/hint” only appears when help text is actually available.
Changes:
- Introduces a single branding constant (
DisplayTitle = "GitHub Copilot") and replaces hard-coded “Copilot agent/Alpha” strings with “GitHub Copilot/Preview” across commands and middleware messages. - Improves UX prompt hints/footers by suppressing “type ? for hint/help” when no
HelpMessageis configured (Prompt/Select/MultiSelect). - Extends the Copilot session system message with guidance for short prompts + properly formatted Azure entity choices, and updates snapshot/figspec test data accordingly.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| cli/azd/pkg/ux/select.go | Only show “type ? for hint” footer text when HelpMessage is provided. |
| cli/azd/pkg/ux/multi_select.go | Only show “type ? for help” footer text when HelpMessage is provided. |
| cli/azd/pkg/ux/prompt.go | Adjusts default hint behavior and conditionally generates hint text when help exists. |
| cli/azd/internal/agent/copilot_agent.go | Tweaks freeform prompt options, rebrands auth text, and revises Azure plugin install messaging. |
| cli/azd/internal/agent/copilot/session_config.go | Adds system-message guidance for prompt/choice formatting (subscriptions/regions). |
| cli/azd/internal/agent/copilot/feature.go | Rebrands “feature not enabled” error message using DisplayTitle. |
| cli/azd/internal/agent/copilot/copilot_client.go | Rebrands client lifecycle/auth/model error messages using DisplayTitle. |
| cli/azd/internal/agent/copilot/config_keys.go | Adds DisplayTitle constant for centralized branding. |
| cli/azd/internal/agent/copilot/cli.go | Rebrands tool name/spinner text to use DisplayTitle. |
| cli/azd/cmd/middleware/error.go | Rebrands troubleshooting messaging to use DisplayTitle. |
| cli/azd/cmd/init.go | Rebrands init option and preview notice; updates “Next steps” line. |
| cli/azd/cmd/copilot.go | Rebrands command short description to “Manage GitHub Copilot agent settings. (Preview)”. |
| cli/azd/cmd/testdata/TestUsage-azd.snap | Updates usage snapshot text to new branding and “(Preview)”. |
| cli/azd/cmd/testdata/TestUsage-azd-copilot.snap | Updates copilot command usage snapshot to new branding and “(Preview)”. |
| cli/azd/cmd/testdata/TestFigSpec.ts | Updates completion spec descriptions to match new branding and “(Preview)”. |
Comments suppressed due to low confidence (1)
cli/azd/pkg/ux/prompt.go:60
- The updated Prompt hint behavior no longer matches the field doc comment (PromptOptions.Hint says default is "[Type ? for hint]", but DefaultPromptOptions now sets it to empty and NewPrompt conditionally populates it). Please update the PromptOptions.Hint comment to reflect the new default/auto-generation rules so callers know how to suppress/enable hints.
var DefaultPromptOptions PromptOptions = PromptOptions{
Writer: os.Stdout,
Reader: os.Stdin,
Required: false,
ValidationMessage: "Invalid input",
RequiredMessage: "This field is required",
Hint: "",
ClearOnCompletion: false,
IgnoreHintKeys: false,
ValidationFn: func(input string) (bool, string) {
return true, ""
ce68864 to
388b401
Compare
- Add DisplayTitle constant for easy rebranding across all UI text - Replace 'agent mode (Alpha)' with 'Set up with GitHub Copilot (Preview)' - Update init preview notice with clearer messaging - Update Azure plugin prompt: 'GitHub Copilot works better with the Azure plugin' - Suppress '[Type ? for hint]' in ask_user prompts when no help is configured - Make 'type ? for hint' conditional on HelpMessage in Select/MultiSelect footers - Update next steps to '(→) NEXT STEPS:' format - Add prompt anti-pattern guidance and Azure entity formatting to system message Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Azure Dev CLI Install InstructionsInstall scriptsMacOS/Linux
bash: pwsh: WindowsPowerShell install MSI install Standalone Binary
MSI
Documentationlearn.microsoft.com documentationtitle: Azure Developer CLI reference
|
tg-msft
left a comment
There was a problem hiding this comment.
Love the changes. Saw the PR already merged, but adding a few minor nit comments anyway to consider for future changes.
| if i.featuresManager.IsEnabled(agentcopilot.FeatureCopilot) { | ||
| followUp += fmt.Sprintf("\n\n%s Run %s to deploy project to the cloud.", | ||
| color.HiMagentaString("Next steps:"), | ||
| output.WithHintFormat("(→) NEXT STEPS:"), |
There was a problem hiding this comment.
Future nit - think it's worth collecting patterns like (→) in output to help us evolve our whole UX easier as we kick the tires with things like TUIs?
| Message: "Your working directory has uncommitted changes. Continue initializing?", | ||
| HelpMessage: fmt.Sprintf( | ||
| "%s may create or modify files in your working directory. "+ | ||
| "Consider committing or stashing your changes first to avoid losing work.", |
There was a problem hiding this comment.
Maybe drop the "losing work" blurb because there are so many other reasons you might want to do this (easily seeing all the changes in a diff, trying again with a higher reasoning effort, ...)?
| "Consider committing or stashing your changes first to avoid losing work.", | |
| "Consider committing or stashing your changes first.", |
| HelpMessage: "Resuming continues where you left off. " + | ||
| "Choosing no starts a fresh session.", |
There was a problem hiding this comment.
Future idea - Might be worth very briefly summarizing what's in that session? A session from 30 seconds ago is obvious, but if I got interrupted last Friday I might not remember what that includes.
| "Scan current directory", // This now covers minimal project creation too | ||
| "Select a template", | ||
| fmt.Sprintf("Use agent mode %s", color.YellowString("(Alpha)")), | ||
| fmt.Sprintf("Set up with %s %s", agentcopilot.DisplayTitle, color.YellowString("(Preview)")), |
There was a problem hiding this comment.
Nit - Might be worth getting slightly more descriptive than Set up for folks who are hesitant about letting an agent run wild? Maybe
| fmt.Sprintf("Set up with %s %s", agentcopilot.DisplayTitle, color.YellowString("(Preview)")), | |
| fmt.Sprintf("Create a project with %s %s", agentcopilot.DisplayTitle, color.YellowString("(Preview)")), |
| console.Message(ctx, "\nThe azd agent feature has been enabled to support this new experience."+ | ||
| " To turn off in the future run `azd config unset alpha.llm`.") | ||
| console.Message(ctx, fmt.Sprintf("\n%s has been enabled to support this new experience."+ | ||
| " To turn off in the future run `azd config unset alpha.llm`.", agentcopilot.DisplayTitle)) |
There was a problem hiding this comment.
Nit - worth adding something like agentcopilot.ConfigKeyErrorHandlingFix for the flag (mostly so it's easier to remove these once we leave preview)?
| return fmt.Errorf("downloading copilot CLI: %w", err) | ||
| } | ||
| c.console.StopSpinner(ctx, "Downloading Copilot CLI", input.StepDone) | ||
| c.console.StopSpinner(ctx, "Downloading GitHub Copilot CLI", input.StepDone) |
There was a problem hiding this comment.
One minor thing that bugs me is telling people we're downloading this when they already probably have it installed. Feels confusing if you don't know about the layering of the Copilot SDK. Is it worth changing this to something more like Downloading Github Copilot SDK or Downloading Github Copilot SDK resources?
| return fmt.Errorf( | ||
| "failed to start Copilot agent runtime: %w", | ||
| err, | ||
| "failed to start %s agent runtime: %w", |
There was a problem hiding this comment.
Do we want still want agent runtime in there?
| "failed to start %s agent runtime: %w", | |
| "failed to start %s: %w", |
| Message: "Sign in to GitHub Copilot? (opens browser)", | ||
| Message: fmt.Sprintf("Sign in to %s? (opens browser)", agentcopilot.DisplayTitle), | ||
| HelpMessage: fmt.Sprintf( | ||
| "%s requires GitHub authentication to access AI models and agent capabilities.", |
There was a problem hiding this comment.
Nit - maybe drop Github auth here because it ends up being called Github Copilot auth/sign in below?
| "%s requires GitHub authentication to access AI models and agent capabilities.", | |
| "%s requires authentication to access AI models and agent capabilities.", |
…7194) - Add DisplayTitle constant for easy rebranding across all UI text - Replace 'agent mode (Alpha)' with 'Set up with GitHub Copilot (Preview)' - Update init preview notice with clearer messaging - Update Azure plugin prompt: 'GitHub Copilot works better with the Azure plugin' - Suppress '[Type ? for hint]' in ask_user prompts when no help is configured - Make 'type ? for hint' conditional on HelpMessage in Select/MultiSelect footers - Update next steps to '(→) NEXT STEPS:' format - Add prompt anti-pattern guidance and Azure entity formatting to system message Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…7194) - Add DisplayTitle constant for easy rebranding across all UI text - Replace 'agent mode (Alpha)' with 'Set up with GitHub Copilot (Preview)' - Update init preview notice with clearer messaging - Update Azure plugin prompt: 'GitHub Copilot works better with the Azure plugin' - Suppress '[Type ? for hint]' in ask_user prompts when no help is configured - Make 'type ? for hint' conditional on HelpMessage in Select/MultiSelect footers - Update next steps to '(→) NEXT STEPS:' format - Add prompt anti-pattern guidance and Azure entity formatting to system message Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…7194) - Add DisplayTitle constant for easy rebranding across all UI text - Replace 'agent mode (Alpha)' with 'Set up with GitHub Copilot (Preview)' - Update init preview notice with clearer messaging - Update Azure plugin prompt: 'GitHub Copilot works better with the Azure plugin' - Suppress '[Type ? for hint]' in ask_user prompts when no help is configured - Make 'type ? for hint' conditional on HelpMessage in Select/MultiSelect footers - Update next steps to '(→) NEXT STEPS:' format - Add prompt anti-pattern guidance and Azure entity formatting to system message Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…7194) - Add DisplayTitle constant for easy rebranding across all UI text - Replace 'agent mode (Alpha)' with 'Set up with GitHub Copilot (Preview)' - Update init preview notice with clearer messaging - Update Azure plugin prompt: 'GitHub Copilot works better with the Azure plugin' - Suppress '[Type ? for hint]' in ask_user prompts when no help is configured - Make 'type ? for hint' conditional on HelpMessage in Select/MultiSelect footers - Update next steps to '(→) NEXT STEPS:' format - Add prompt anti-pattern guidance and Azure entity formatting to system message Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…7194) - Add DisplayTitle constant for easy rebranding across all UI text - Replace 'agent mode (Alpha)' with 'Set up with GitHub Copilot (Preview)' - Update init preview notice with clearer messaging - Update Azure plugin prompt: 'GitHub Copilot works better with the Azure plugin' - Suppress '[Type ? for hint]' in ask_user prompts when no help is configured - Make 'type ? for hint' conditional on HelpMessage in Select/MultiSelect footers - Update next steps to '(→) NEXT STEPS:' format - Add prompt anti-pattern guidance and Azure entity formatting to system message Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…7194) - Add DisplayTitle constant for easy rebranding across all UI text - Replace 'agent mode (Alpha)' with 'Set up with GitHub Copilot (Preview)' - Update init preview notice with clearer messaging - Update Azure plugin prompt: 'GitHub Copilot works better with the Azure plugin' - Suppress '[Type ? for hint]' in ask_user prompts when no help is configured - Make 'type ? for hint' conditional on HelpMessage in Select/MultiSelect footers - Update next steps to '(→) NEXT STEPS:' format - Add prompt anti-pattern guidance and Azure entity formatting to system message Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Summary
Rebrand the agent experience from generic "agent mode" terminology to GitHub Copilot branding, replace "Alpha" with "Preview", and improve prompt quality across the UX.
Changes
"GitHub Copilot"inconfig_keys.gofor single-point rebranding"agent mode (Alpha)"→"Set up with GitHub Copilot (Preview)"across init, copilot command, and error middleware"GitHub Copilot will scan your repository and help generate an azd compatible project...""GitHub Copilot works better with the Azure plugin..."with detailed help text listing MCP server & skills"[Type ? for hint]"when no HelpMessage is configured"type ? for hint"only appears in Select/MultiSelect when HelpMessage is defined(→) NEXT STEPS: Run azd up to deploy project to the cloud.Name (id),Full Region (short-name))Screenshots