Skip to content

Improve vscode extension UX for ql-mcp workflow prompts #229

@data-douser

Description

@data-douser

Goal

Improve the UX around the use of ql-mcp-provided prompts when used as slash commands in the Copilot Chat interface of VS Code, where ease-of-use should must be improved using a combination of native VS Code extension APIs and ql-mcp tool capabilities for resolving CodeQL databases, languages, packs, queries, tests, etc. For example, if a given "workflow" prompts requires a path to a CodeQL query within the user's VS Code workspace, then the ql-mcp server should be leveraged to provide the data that feeds into the VS Code UI for picking an option from a pre-filled / auto-completed set of possible CodeQL queries -- where suggested options are automatically refined based on what the user types in the selection UI.

Current State

For a VSIX-installed version of the ql-mcp server and its wrapping VS Code extension, the ql-mcp server's prompts can be used as slash commands in the Copilot Chat interface, where the user is prompted to provide string values for required and optional "workflow" prompt parameters. However, the UX for such "workflow" prompts (i.e. used as slash commands in Copilot Chat) is currently very poor, where the user must manually look up local file paths for things like CodeQL queries, CodeQL databases, CodeQL query unit tests, etc. -- all things that should be (or already are) known to the wrapping VS Code extension for the ql-mcp server.

Desired State

For a VSIX-installed version of the ql-mcp server and its wrapping VS Code extension, using the ql-mcp server's prompts will be much easier to use as VS Code Copilot Chat slash commands. For any optional or required prompt argument that must point to some directory or file path that could be known to the ql-mcp -- especially any file path under a current VS Code workspace folder -- the user should be able to just click the option (or options, as appropriate) from a drop-down list that automatically updates to filter out paths that cannot match what the user has typed so far, if they have typed anything. Any ql-mcp server prompt parameter that doesn't need to be a prompt parameter -- such as a language parameter for a prompt that requires an existing .ql query path, from which the query language could be auto-derived by ql-mcp server tool functionality -- must be either removed as a prompt parameter and/or have its parameter value auto-populated wherever possible. Such functionality will be extensively tested using extension unit tests and (especially) extension integration tests.

Additional References

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions