-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Ruby Copilot chat agent with domain driven design command #2366
Conversation
a7e15fc
to
5a5261d
Compare
Hi VS Code PM here 👋 This is super cool to see 🎉 I am curios if having a @ruby participant is too broad. Imagine the following: I am a new user, and I am interacting with Copilot Chat. I want to learn about Ruby and I ask “How do I create a new Rails application”. This question can get well answered by GH Copilot, but how does the user know if they should use @ruby. For example, none of our 1st party language teams are not contributing their participants @python, @java... So, I would think more about the scenarios, and I like the current /design one. To make sure that the participant is an expert in a specific area where the default GH Copilot sucks. Just my thinking, curious to hear other thoughts. |
@isidorn this is a really good point and to be honest, I'm not sure where the right balance lies exactly. The guidelines mention this:
So my rationale was that we would create a This PR introduces the Rails domain driven design command, but we could also add things like
However, for chat interactions that are less specific or that do not require any information about the user's codebase, the regular chat is indeed more than enough to satisfy the user's needs. How are the Python and Java teams organizing their chat participants? Do you have suggestions on how to organize ours with these possible use cases? |
Thanks for sharing the thinking process. I love some of the ideas you are outlining.
They do not contribute a chat participant. They are all experimenting with different approaches. I want to brainstorm more with the team next week on the recommended approach for language extensions on extending GH Copilot. But it might be something like:
Having said this, things are still in the air, and from our side you can go ahead with your current approach to learn and get user feedback. fyi @roblourens @aeschli |
Awesome! Thank you for context. The idea was always to start with this as an experimental feature anyway, so we'd be happy to change the implementation based on your guidelines. |
e21090d
to
a55f4a5
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for pushing this forward! This is a worthwhile experiment to run 👍
a55f4a5
to
e8b5522
Compare
Motivation
Add a Ruby Copilot chat agent with a domain driven design command (
/design
for short). The idea of the command is to assist the user in designing a concept into the model and database implementation.For example, they can ask the following:
I'm working on a school web application. How can I model courses? And how do they relate to students?
. The chat will then reply with a suggested schema and buttons to run the Rails generate command for the proposed solution. Users can continue chatting back and forth until they arrive at the desired state.Implementation
The first commit only bumps the VS Code engine and
@types
package to v1.90, which is the first to include the chat related types we need.The second commit includes the chat agent implementation. I will add comments in the PR explaining each part.
Manual Tests
copilot_chat_ddd.mov