I just had an unpleasant interaction with our agentic init. Here's some stuff I ran into.
Lack of any sort of progress indicator
I think we should try to take advantage of some sort of task list (in copilot CLI, you can request it to create a little TODO list)
Todo added 4 items
│ Listing folder contents
│ Preparing PowerShell sorter
│ Preserving sorted output
└ Composing inventory poem
Having something like this that we occasionally print out would help the user stay grounded and understand where they are in the process.
Repetitive output that doesn't seem important
We have some messages that just seem to print, and it's not clear what they're telling me:
? The current directory is empty — no application code was found. What type of Azure application would you like to create? (e.g., web app, API, function app, static site, containerized service): 1
Let me check the current directory for application code first.
/ Thinking...
Press Ctrl+C to cancel
Let me check the current directory for application code first.
Let me check the current directory for application code first.
User-prompted input renders incorrectly
Down below, you can see that I'm being prompted to answer What language/framework would you like for the web app? Node.js (Express). However, we printed a few intervening pieces of text first, so the actual question is under a the 'Let me check the current directory for application code first' and a status message about the azure-prepare skill, neither of which are relevant to the actual thing being prompted.
? The current directory is empty — no application code was found. What type of Azure application would you like to create? (e.g., web app, API, function app, static site, containerized service): 1
Let me check the current directory for application code first.
/ Thinking...
Press Ctrl+C to cancel
Let me check the current directory for application code first.
Let me check the current directory for application code first.
? What language/framework would you like for the web app? Node.js (Express)
> 1. Node.js (Express)
2. Python (FastAPI)
3. .NET (ASP.NET Core)
4. Python (Flask)
5. Other (type your own answer)
───────────────────────────────────
Use arrows to move
The azure-prepare and azure-validate skills aren't available in this environment. Let me proceed directly to scaffold the web app and prepare it for Azure deployment using azd .
Let me check the current directory for application code first.
? What language or framework would you like to use for your web app? For example: Node.js (Express), Python (FastAPI/Flask), or .NET (ASP.NET Core)?
Let me check the current directory for application code first.
I'll default to a Node.js (Express) web app deployed to Azure App Service. Let me scaffold the project now.
Let me check the current directory for application code first.
✔︎ Ran bash Create project directories
├ command: cd /home/ripark/src/_/azd-migrate-copilot-sdk/cli/azd/hacks && mkdir -p src infra && echo "setup"
└ description: Create project directories
Let me check the current directory for application code first.
✔︎ Create src/package.json (+13)
Let me check the current directory for application code first.
So...
I really want to consider if rendering the conversation is something we want to do, or if we'd prefer to just shell out to copilot CLI as a sub-process, init it with a prompt, and just the conversation occur through their UI, rather than ours.
The challenges there are you jump from one experience (ours), to another (copilot), but copilot is popular enough that it seems like people that work in the terminal and use GitHub Copilot are already familiar with it. azd's job here would be to make it easy to have all the useful context loaded, like skills, MCPs, or whatever we think will work well, but after that we're hands-off.
I just had an unpleasant interaction with our agentic init. Here's some stuff I ran into.
Lack of any sort of progress indicator
I think we should try to take advantage of some sort of task list (in copilot CLI, you can request it to create a little TODO list)
Having something like this that we occasionally print out would help the user stay grounded and understand where they are in the process.
Repetitive output that doesn't seem important
We have some messages that just seem to print, and it's not clear what they're telling me:
User-prompted input renders incorrectly
Down below, you can see that I'm being prompted to answer
What language/framework would you like for the web app? Node.js (Express). However, we printed a few intervening pieces of text first, so the actual question is under a the 'Let me check the current directory for application code first' and a status message about the azure-prepare skill, neither of which are relevant to the actual thing being prompted.So...
I really want to consider if rendering the conversation is something we want to do, or if we'd prefer to just shell out to
copilotCLI as a sub-process, init it with a prompt, and just the conversation occur through their UI, rather than ours.The challenges there are you jump from one experience (ours), to another (copilot), but copilot is popular enough that it seems like people that work in the terminal and use GitHub Copilot are already familiar with it. azd's job here would be to make it easy to have all the useful context loaded, like skills, MCPs, or whatever we think will work well, but after that we're hands-off.