Como criar Quick Commands IDE
Criar um Quick Command
Siga os passos para criar:
Passo 1. Acesse o Portal da StackSpot AI
Passo 2. No menu principal, clique em ‘Contents > Quick Command’;
Passo 3. Clique no botão ‘Criar Quick Command’;

Passo 4. Selecione a opção: IDE;
Passo 5. Preencha os campos para adicionar informações sobre o seu Quick Command;
- Nome do Quick Command: adicione um nome claro e descritivo para o seu comando.
Exemplo: Technical Debt
- Comando: adicione um nome que será usado posteriormente. Ele deve seguir o padrão de slug. Para mais informações sobre Slugs, confira o padrão do slug.
Exemplo: technical_debt_1
- Descrição: adicione uma descrição clara e objetiva sobre o que o seu comando faz.
Exemplo: Criar uma issue no GitHub destacando a dívida técnica no código selecionado e sugerir uma forma de correção.

Passo 6. Clique no botão 'Próximo'. Você pode escolher entre usar os templates disponíveis (pré-preenchidos) ou criar um template do zero, conforme sua necessidade.

Confira um exemplo de criação:

Usar passo do tipo ‘Prompt’
Confira um exemplo de criação de um Quick Command de com passo do tipo ‘Prompt’:
1. Clique em 'Criar em branco'. Aperte e arraste a caixa de 'Prompt' para perto do 'Início'. É necessário conectar as caixas com a linha:

2. Preencha os campos na caixa do prompt:
- Insira o nome do seu prompt: adicione um identificador slug seguindo o padrão de slug.
Confira um exemplo: /titulo_da_issue
- Insira seu prompt: escreva o que você quer que seu comando faça.
Se você quiser que o usuário selecione um trecho específico de código, insira o {{ input_data }} na caixa designada. Adicionar esta opção envia a informação para a StackSpot AI e facilita o entendimento;
Confira o exemplo: "Leia este {{ input_data }} e escreva um título de até 80 caracteres para uma issue no GitHub."
Você pode incorporar passos condicionais ao fluxo dos seus Quick Commands. Para mais detalhes, confira a página de Condicionais.
-
Use a Stack atual para gerar código: Esta opção depende do que você precisa.
- Quando habilitada, considera o contexto da sua Stack e gera código baseado se você tem uma Stack de Java ou Python, por exemplo. Se você requer geração de código, então esta opção é recomendada.
- No entanto, se você precisa gerar texto, como traduções, é melhor não habilitar esta opção, pois não deve produzir os melhores resultados.
-
Usar Projeto Indexado: ative o projeto indexado nesta etapa para utilizar os arquivos indexados e melhorar o contexto no Quick Command. Após um projeto ser indexado, o recurso de Quick Commands usa esses dados para criar comandos e fluxos de trabalho mais precisos e relevantes. Isso deve resultar em sugestões personalizadas para o ambiente específico do projeto indexado.
-
Use o Knowledge Source selecionado no chat: quando você habilita essa opção, a StackSpot AI incluirá todos os Knowledge Sources selecionados pelo usuário na IDE durante a execução de um Quick Command (incluindo aqueles dentro do Workspace selecionado) e aqueles já configurados no Quick Command. Isso melhorará os Quick Commands com informações essenciais e específicas do Workspace, aumentando sua utilidade e consciência de contexto.
-
Incluir os arquivos enviados: Para permitir que as pessoas usuárias enviem arquivos em uma etapa específica do Quick Command, ative a opção Incluir arquivos enviados em cada etapa desejada. Quando essa opção estiver ativada, as pessoas usuárias poderão fazer upload de arquivos durante a execução do comando.

- Quando o comando for executado com essa opção ativada, a pessoa usuária deverá fazer o upload do arquivo no início do processo.

- Continuar mesmo com erro: permite definir qual será o próximo passo de acordo com o sucesso ou erro de um step. Assim, você controla o fluxo do Quick Command conforme necessário.
- Para configurar, clique na caixa do prompt e marque a opção 'Continuar mesmo com erro'. Clique em 'Sucesso'' e conecte a caixa desejada. Faça o mesmo para 'Erro'.
- Você pode tratar erros exibindo o status, mensagem de erro ou outras informações usando variáveis Jinja no campo de Resultado Final. Para mais detalhes, confira a documentação.
- Se um step não tiver essa opção ativada, qualquer erro interrompe a execução do Quick Command.
- Se a opção estiver ativada e ocorrer um erro, o fluxo segue o caminho definido para Erro. A StackSpot AI só continua a execução se houver um fluxo definido para erros.
Essa opção está disponível apenas para steps do tipo Prompt, não para Web Request.

3. Selecionar Knowledge Sources
Esse é um passo opcional. Ao criar um Quick Command, você pode escolher Knowledge Sources para selecionar um contexto específico. Isso é útil ao criar comandos que exigem conhecimento detalhado, como a busca por vulnerabilidades com base em políticas de segurança, por exemplo.

4. Selecionar Agentes
Durante a criação do Quick Command, você pode selecionar Agentes. Eles serão consultados sempre que o usuário utilizar esse prompt.

5. Clique no botão ‘Salvar’ e depois conecte a linha da caixa do seu prompt até a caixa 'Finalizar'.
6. Clique em 'Finalizar' e, em seguida, na Tela de Resultado Final:
- Escolha a forma como o usuário pode interagir com o seu Quick Command na IDE, confira:
-
Interface: a pessoa usuária usa o comando, e o conteúdo é exibido na barra lateral da Extensão da StackSpot AI.
-
Código: a pessoa usuária usa o comando, e o conteúdo será colado diretamente no código ou:
-
Substituir o código selecionado
-
Acima do código selecionado
-
Abaixo do código selecionado
-
Insira .answer após o nome do seu Quick Command (apenas se for uma opção de prompt):
{{ title_issue.answer }}
7. Clique no botão 'Salvar';
Confira o resumo do seu comando

O comando pode usar o formato Jinja
Confira o exemplo:

Usar passo do tipo 'Web Request'
Esse exemplo adiciona o passo do tipo 'Web Request' em um Quick Command que já possui um passo do tipo Prompt para obter um título para uma issue do GitHub.
Passo 1. Clique em ‘Web Request’, em seguida clique no Card Step adicionado e preencha os campos:
- Nome da requisição web: github-issue
- Método HTTP: POST
- URL Endpoint: Esta é uma API do GitHub que usa seu repositório, substitua os valores
{ONWER_REPO}/{REPO_NAME}pelo seu nome de usuário ou organização e o nome do repositório que você deseja abrir a issue:https://api.github.com/repos/{ONWER_REPO}/{REPO_NAME}/issues - Headers:
Para esse tipo de requisição, você precisa gerar um Personal Access Token (PAT) fine-grained nas configurações do seu perfil do GitHub. Vá até a seção ‘Developer settings‘, e conceda as permissões necessárias para interagir com repositórios. E em seguida, crie uma Secret na StackSpot ou selecione uma Secret existente na sua conta para usar nos campos 'Key' e 'Value'.
Considere que foi cadastrada uma Secret com o nome github com a Key MY_TOKEN e Value com o valor do PAT. Ao selecionar a Secret ela será adicionada como:
- Key: MY_TOKEN
- Value:
{{secrets.user.github.MY_TOKEN}}(Formato de Secret para armazanamento Pessoal)
Dessa forma, o header da sua requisição deve conter em Authorization como 'Value' a variável {{secrets.user.github.MY_TOKEN}}.
Preencha os 'Headers' da requisição preenchendo os campos 'KEY' e 'VALUE' de acordo com o exemplo a seguir:
Não utilize aspas no preenchimento dos Headers.
{
"Accept": "application/vnd.github+json",
"Authorization": "Bearer <ADD_YOUR_TOKEN>",
"X-GitHub-Api-Version": "2022-11-28"
}

- Body da requisição: O body recebe a resposta do prompt de revisão de código que você adicionou antes e substitui JSON usando Jinja para realizar ações:
{{ codereview.answer | replace("json","") | replace("```","")}}
Clique em 'Ok' para finalizar;
Passo 2. Clique no card 'Finalizar' para abrir as opções de 'Utilização do Quick Command'. Selecione a opção 'Interface';
- No campo 'Resultado Final', apague qualquer texto que houver e adicione o texto a seguir:
Este código adiciona na resposta a URL da issue do GitHubIssue created on github!
{{github-issue.json.html_url}}
Passo 3. Clique em ‘Ok’ e ligue todos os cards do fluxo na sequência: Início > codereview > github-issue > Finalizar;
Passo 4. Preencha a Utilização do Quick Command. Escolha a forma como o usuário pode interagir com o seu Quick Command na IDE, confira:
-
Interface: a pessoa usuária usa o comando, e o conteúdo é exibido na barra lateral da Extensão da StackSpot AI.
-
Código: a pessoa usuária usa o comando, e o conteúdo será colado diretamente no código ou:
-
Substituir o código selecionado
-
Acima do código selecionado
-
Abaixo do código selecionado
-
Resultado final: Esta opção mostra a mensagem de sucesso que o usuário verá usando o seu Quick Command. Você pode editar a mensagem e escolher o modo de utilização também. Confira o exemplo mostrando a URL para criar uma issue no GitHub:
Resultado final
Insira { para visualizar as opções de entrada pré-definidas ou clique nas tags:
select_mode, titulo_da_issue, summarize, propose_improvement;
-
Usar contexto de chat: Esta opção usa respostas e interações de Quick Command anteriores como contexto para interações subsequentes em uma sessão de chat específica. Você pode usar esta opção para ter uma experiência mais coerente e enriquecida contextualmente em suas interações dentro da plataforma. A StackSpot AI usa entradas e respostas anteriores para informar e aprimorar seus comandos e respostas futuras.
-
Usar Projeto Indexado: ative o projeto indexado nesta etapa para utilizar os arquivos indexados e melhorar o contexto no Quick Command. Após um projeto ser indexado, o recurso de Quick Commands usa esses dados para criar comandos e fluxos de trabalho mais precisos e relevantes. Isso deve resultar em sugestões personalizadas para o ambiente específico do projeto indexado.
Sua issue foi criada com sucesso no seguinte URL:
{{create_issue.json[0].url}}

Passo 5. Clique nos botão 'OK’
Você pode fazer alterações no seu Quick Command, é só clicar em qualquer parte do 'Command Flow'.
Se o seu Quick Command encontrar algum erro com o provedor do LLM, como limite de uso, tempo de resposta esgotado (timeout) ou falha de conexão, a StackSpot AI tentará executar a chamada novamente de forma automática. São feitas até três novas tentativas além da chamada original, totalizando quatro tentativas para cada step de LLM.
Você não pode alterar ou configurar a quantidade de tentativas.
Ao adicionar uma URL de serviço externa, pode ser que a API não permita o recebimento de requisições devido a restrições de CORS (Cross-Origin Resource Sharing).
Para resolver esse problema, você tem duas opções:
Para realizar qualquer uma das opções, é necessário ter conhecimento sobre APIs. O processo pode variar dependendo da linguagem, framework ou infraestrutura utilizada.
Opção 1. Adicionar a URL do Front da StackSpot na API
Se você for o responsável pela API, basta configurar a API para aceitar requisições provenientes da URL do front da StackSpot. Isso permitirá que as requisições sejam realizadas sem problemas.
Opção 2. Criar uma API de Middleware
Caso não seja possível alterar a configuração da API, você pode criar uma API de middleware. Nesse caso, o Quick Command (QC) chamará a sua API de middleware, que será responsável por liberar o CORS. Em seguida, o middleware fará a chamada interna ao serviço externo desejado.
O middleware ou proxy mencionado aqui é uma API comum que permite você configurar e habilitar as definições de CORS. Sua principal função é atuar como um intermediário, repassando as chamadas para a API de destino. As chamadas de API para API não enfrentam problemas relacionados a CORS.
O fluxo típico funciona da seguinte forma:
- O Front-end realiza chamadas para a API de middleware ou proxy. Nesta etapa, é necessário que as configurações de CORS estejam devidamente habilitadas no middleware ou proxy.
- A API de middleware ou proxy repassa as chamadas para a API de destino, sem a necessidade de configurações adicionais de CORS, já que chamadas entre APIs não enfrentam restrições de origem cruzada
Como posso navegar por cada etapa desse fluxo de criação?
Quando a resposta é um JSON, você pode navegar por partes específicas das etapas anteriores que você fez no fluxo de criação. Você pode trabalhar com os atributos, os valores, etc. Esse passo é essencial porque você pode extrair o que o usuário precisa. Por exemplo, um campo daquele serviço que você criou, um cabeçalho, qual foi o status, etc.
Se você precisar saber qualquer valor das etapas anteriores, adicione as informações:
1. Web Request Confira um servidor que pode retornar o seguinte formato de objeto:
Headers: {"headers_name": "value", ...}
data: text
status: [200-599]
json: json - dictionary of the "data"
Exemplo: {{create_issue.json[0].url}}
- Se os dados que você recebe estão em formato JSON, você pode facilmente navegar pelos valores e atributos dos seus dados.
- O campo
jsonestará vazio se não for um JSON.
2. Prompt Por padrão, você pode navegar pelos seguintes campos:
prompt_tokens: string
completion_tokens: string
Exemplo: {{my_prompt.answer}}
O que você pode fazer a seguir?
1. Adicionar Inputs
2. Compartilhar o seu Quick Command
Você pode compartilhar um Quick Command que criou com outras pessoas usuárias. Isso permitirá o uso direto dentro das IDEs da Conta.
- Na tela de 'Quick Commands' clique no botão de compartilhar no lado esquerdo para compartilhar.
Excluir um Quick Command IDE conectado a um Workspace
Esta ação é irreversível.
Excluir um Quick Command IDE em um Workspace pode afetar outras pessoas usuárias. Siga os passos:
- No o menu principal vá para ‘Quick Command’;
- Selecione o Quick Command que deseja excluir e clique em ‘Configurações’;
- Clique no botão ‘Excluir’