GitLab Duo Chat best practices

When prompting GitLab Duo Chat with questions, keep the following best practices in mind.

Have a conversation

Treat chats like conversations, not search forms. Start with a search-like question, then follow up with related questions to refine the scope. Build context through back-and-forth.

For example, you might ask:

Copy to clipboard
c# start project best practices

Then follow up with:

Copy to clipboard
Please show the project structure for the C# project.

Refine the prompt

For better responses, provide more context up front. Think through the full scope of what you need help with and include it in one prompt.

Copy to clipboard
How can I get started creating an empty C# console application in VS Code?
Please show a .gitignore and .gitlab-ci.yml configuration with steps for C#,
and add security scanning for GitLab.

Follow prompt patterns

Structure prompts as problem statement, request for help, then add specificity. Don’t feel you must ask everything up front.

Copy to clipboard
I need to fulfill compliance requirements. How can I get started with Codeowners and approval rules?

Then ask:

Copy to clipboard
Please show an example for Codeowners with different teams: backend, frontend, release managers.

Use low-context communication

Even if code is selected, provide context as if none is visible. Be specific on factors like language, framework, and requirements.

Copy to clipboard
When implementing a pure virtual function in an inherited C++ class,
should I use virtual function override, or just function override?

Repeat yourself

Try rephrasing a question if you get an unexpected or strange response. Add more context.

Copy to clipboard
How can I get started creating an C# application in VS Code?

Follow up with:

Copy to clipboard
How can I get started creating an empty C# console application in VS Code?

Be patient

Avoid yes/no questions. Start general, then provide specifics as needed.

Copy to clipboard
Explain labels in GitLab. Provide an example for efficient usage with issue boards.

Reset when needed

Use /reset if Chat gets stuck on a wrong track. Start fresh.

Refine slash command prompts

Go beyond the basic slash command. Use them with more specific suggestions.

Copy to clipboard
/refactor into a multi-line written string. Show different approaches for all C++ standards.

Or:

Copy to clipboard
/explain why this code has multiple vulnerabilities