Pular para o conteúdo
claudemods

Next Steps: sugestões de prompt do Claude Code após cada turno

Dois ou três prompts prováveis acima da entrada depois de cada turno. Pressione 1, 2 ou 3 para criar um rascunho.

Permissões

  • Chama o modelo (usa sua cota)Pode enviar suas próprias requisições ao Claude, que contam no uso do seu plano ($.model.* / $.agent.spawn).
  • Lê seus promptsPode ver o que você digita e a transcrição da conversa (prompt.* / session.append / session.messages).
  • Altera a interfaceDesenha na interface do Claude Code: faixas, painéis, texto de status, notificações (ui.render / $.ui.*).
testado com
v2.1.291
último teste
requer
Claude Code ≥ 2.1.287
superfícies
acima do prompt

Instale dentro do Claude Code:

/plugin install next-steps --marketplace hamzafer/claude-code-mods
Todas as opções de instalação ↓

O que este mod faz?

O Next Steps oferece sugestões de prompt do Claude Code. É um mod da comunidade criado por Hamza Zafar (hamzafer), parte da coleção claude-code-mods dele. Quando um turno termina, ele mostra, em uma faixa acima da entrada, dois ou três prompts curtos que você provavelmente vai digitar em seguida. Por exemplo, depois que o Claude explica um arquivo, ele pode oferecer Write a test for the login function.

Enquanto a entrada está vazia, pressionar 1, 2 ou 3 coloca a sugestão correspondente na caixa como rascunho, e 0 fecha a lista. Nada é enviado sozinho: você edita o rascunho ou pressiona Enter. Em um terminal largo, as sugestões dividem uma linha (next: 1 ... · 2 ... · 0 dismiss). Quando não cabem em uma linha, cada uma ganha a sua, a menos que a faixa tenha poucas linhas livres; nesse caso, usa-se uma única linha, cortada no final.

As sugestões vêm de uma chamada ao modelo haiku depois do turno. A faixa fica escondida enquanto o Claude trabalha ou há uma pesquisa aberta, quando a resposta tem menos de 20 caracteres e enquanto agentes em segundo plano ainda estão rodando. Turnos de subagentes são ignorados. O mod where-am-i do autor lê um sinalizador compartilhado para omitir a própria parte "next" enquanto esta lista aparece.

Demonstração

A gravação inicia o Claude Code com o mod carregado no pequeno projeto de demonstração e pede ao Claude que leia src/login.js e o explique em duas frases. Quando o turno termina, aparece acima da entrada uma faixa next: com três sugestões numeradas, como Add error handling for empty strings e Write a test for the login function, e a indicação 0 dismiss. O vídeo fica parado nessa tela; depois 1 é pressionado no prompt vazio e a primeira sugestão aparece na entrada como um rascunho não enviado. O clipe está acelerado, então as pausas são mais curtas do que parecem.

Instalação

Use qualquer um dos métodos do bloco de instalação; eles instalam direto do marketplace do próprio autor. A faixa aparece depois do próximo turno concluído.

$ install next-steps

Requer Claude Code ≥ 2.1.287

Instala a partir do marketplace do autor: hamzafer/claude-code-mods

  1. 1.Uma linha, dentro do Claude Code

    /plugin install next-steps --marketplace hamzafer/claude-code-mods

    Cole em uma sessão em andamento (v2.1.275+). O Claude Code pede primeiro para adicionar o marketplace.

  2. 2.Pelo seu shell

    claude plugin marketplace add hamzafer/claude-code-mods
    claude plugin install next-steps@claude-code-mods

    Depois execute /reload-plugins em qualquer sessão que já esteja aberta.

  3. 3.Experimente sem instalar

    git clone https://github.com/hamzafer/claude-code-mods
    claude --plugin-dir ./claude-code-mods/mods/next-steps

    Carrega o mod só para uma sessão. Nada é adicionado às suas configurações.

Como funciona

O mod guarda a lista atual em um átomo $.state mantido pelo host e a desenha no ponto de renderização AbovePrompt, abaixo das faixas de outros mods. O tratamento das teclas, de hooks/register.tsx:

on('prompt.edit', async ($, e, next) => {
  if (hasSurvey || !e.key || e.key.ctrl || e.key.meta || e.text !== '' || e.start !== 0 || e.end !== 0 || !/^[0-9]$/.test(e.inputText)) return next(e)
  const s = await read($, steps)
  if (!s) return next(e)
  if (e.inputText === '0') {
    await setSteps($, () => null)
    return { text: '', cursor: 0 } // consumed: the box stays empty
  }
  const pick = s.items[Number(e.inputText) - 1]
  if (!pick) return next(e)
  return next({ ...e, inputText: pick }) // a draft: the person edits it or presses Enter
})

Em turn.complete (só o agente principal), suggest chama $.model.complete com maxTokens: 200 e tempo limite de 20 segundos. Pede-se ao modelo 2 ou 3 prompts no imperativo com menos de 60 caracteres, um por linha, ou NONE. Depois, parseSteps remove blocos de código, marcadores, numeração, aspas e travessões, descarta preâmbulos e linhas com mais de 120 caracteres (descartadas, nunca cortadas), remove duplicatas e mantém no máximo três. O resultado só é gravado se, nesse meio-tempo, nenhum novo prompt nem novo turno tiver começado, então uma resposta atrasada nunca substitui um estado mais novo. prompt.submit e turn.start limpam a lista.

Personalize

Não há opções em /config. Para mudar o comportamento, edite as constantes no início de register.tsx: MODEL (padrão haiku), MAX_ITEMS (3), MAX_CHARS (60, o que se pede ao modelo), MAX_KEPT (120, a linha mais longa que é mantida) e MIN_ANSWER (20, a resposta mais curta que dispara uma chamada). O texto do pedido ao modelo está nas strings system e prompt de suggest.

Permissões e segurança

Lemos todos os arquivos que o plugin pode executar antes de rodar qualquer coisa: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.tsx (o único módulo), as declarações de tipos e os testes. Não há package.json, script de instalação, binário nem código empacotado ou minificado, e nada é carregado de fora da pasta do plugin.

  • Chamada ao modelo. Depois de cada turno concluído do agente principal, suggest envia ao modelo haiku, por $.model.complete, até as últimas 6 mensagens da sessão (cada uma cortada em 800 caracteres) e a última resposta (cortada em 2.000 caracteres). Isso usa a sua conta do Claude Code como qualquer outra chamada ao modelo, e o mod não abre nenhuma outra conexão de rede. O texto é conteúdo da sessão, então pode incluir tudo o que você e o Claude conversaram.
  • Texto do prompt. As instruções do próprio mod para o modelo são strings simples e legíveis. Ele não injeta nada nos seus prompts nem no contexto do Claude: a saída do modelo só chega à caixa de entrada como rascunho que você mesmo precisa enviar. Como as sugestões são escritas a partir da transcrição, o texto de um arquivo que o Claude leu ainda poderia influenciar o que é sugerido, e você o veria antes de enviar.
  • Hooks de teclas e de prompt. prompt.edit troca um dígito digitado em um prompt vazio pelo texto da sugestão, ou consome o 0. prompt.submit apenas limpa a lista e repassa o prompt sem alterações. O claude plugin validate registra que prompt.submit é um hook de bloqueio sem .catch, mas ele nunca bloqueia nem reescreve um prompt.
  • Nada mais. Não executa comandos, não lê nem grava arquivos, não toca em configurações, arquivos de shell nem daemons, não lê variáveis de ambiente e não tem telemetria. O estado fica na memória do host. A licença é MIT, com um arquivo LICENSE no repositório.

O claude plugin validate não reportou erros nem avisos, e os 16 testes do autor passaram no Claude Code 2.1.291.

Chama o modelo (usa sua cota)
Pode enviar suas próprias requisições ao Claude, que contam no uso do seu plano ($.model.* / $.agent.spawn).
Lê seus prompts
Pode ver o que você digita e a transcrição da conversa (prompt.* / session.append / session.messages).
Altera a interface
Desenha na interface do Claude Code: faixas, painéis, texto de status, notificações (ui.render / $.ui.*).

Compatibilidade e solução de problemas

Verificado com o Claude Code 2.1.291 no macOS (validate, testes e a gravação da demonstração). Se nenhuma sugestão aparecer:

  • A última resposta foi muito curta (menos de 20 caracteres) ou o modelo não tinha nada sensato a acrescentar.
  • Agentes em segundo plano ainda estão rodando; a chamada espera até o agente principal retomar o trabalho.
  • O Claude ainda está trabalhando, ou há uma pesquisa aberta acima do prompt. A faixa aparece quando o turno termina.
  • Você pressionou um dígito com texto já na caixa, ou o colou. Dígitos só agem em um prompt vazio.
  • Você enviou um prompt ou começou um novo turno, o que limpa a lista até o turno terminar.

Perguntas frequentes

O Next Steps envia meus prompts por mim?
Não. Um dígito só coloca a sugestão na caixa de entrada como rascunho. Você pode editá-la ou pressionar Enter. Nada é enviado até que você faça isso.
Ele gasta tokens?
Sim, um pouco. Depois de cada turno ele faz uma chamada ao modelo haiku pela própria API de modelos do Claude Code, com até 6 mensagens recentes e a última resposta como entrada. Ele pula a chamada para respostas com menos de 20 caracteres e enquanto agentes em segundo plano ainda estiverem rodando.
Como digito um prompt que começa com um dígito enquanto a lista aparece?
Pressione 0 primeiro. Isso fecha a lista e deixa a caixa vazia, então o próximo dígito entra como texto. Dígitos digitados depois de outro texto e dígitos colados sempre entram como texto.
Quando a lista some?
Quando você envia um prompt (inclusive um comando com barra), quando um novo turno começa, quando você pressiona 0 e enquanto o Claude trabalha ou há uma pesquisa aberta acima do prompt.
Posso mudar o modelo ou o número de sugestões?
Não há configurações, mas as constantes no início de hooks/register.tsx controlam isso: MODEL, MAX_ITEMS, MAX_CHARS, MAX_KEPT e MIN_ANSWER. O prompt para o modelo está na função suggest do mesmo arquivo.
Context Bar em execução no Claude CodeDestaque

Context Bar

A janela de contexto do Claude Code como uma barra empilhada acima do prompt, uma cor por categoria, com tokens.

  • acima do prompt
  • Altera a interface
  • Adiciona comandos/ferramentas
  • Armazena dados

testado com v2.1.291

md-preview em execução no Claude CodeDestaque

md-preview

Os arquivos Markdown que o Claude edita, renderizados como no GitHub num painel ao lado do chat, com antes e depois.

  • painel
  • notificação
  • Lê arquivos
  • Grava arquivos
  • Executa comandos
  • Intercepta chamadas de ferramentas
  • Altera a interface
  • Adiciona comandos/ferramentas

testado com v2.1.291

Mais em Timers, tarefas e standups.