Saltar al contenido
claudemods

Next Steps: sugerencias de prompts de Claude Code tras cada turno

Dos o tres prompts probables sobre la entrada tras cada turno. Pulsa 1, 2 o 3 para crear un borrador.

Permisos

  • Llama al modelo (usa tu cuota)Puede enviar sus propias peticiones a Claude, que cuentan para el uso de tu plan ($.model.* / $.agent.spawn).
  • Lee tus promptsPuede ver lo que escribes y la transcripción de la conversación (prompt.* / session.append / session.messages).
  • Modifica la interfazDibuja en la interfaz de Claude Code: bandas, paneles, texto de estado, avisos (ui.render / $.ui.*).
probado con
v2.1.291
última prueba
requiere
Claude Code ≥ 2.1.287
superficies
sobre el prompt

Instalar dentro de Claude Code:

/plugin install next-steps --marketplace hamzafer/claude-code-mods
Todas las opciones de instalación ↓

¿Qué hace este mod?

Next Steps ofrece sugerencias de prompts de Claude Code. Es un mod de la comunidad creado por Hamza Zafar (hamzafer), parte de su colección claude-code-mods. Cuando termina un turno, muestra en una franja sobre la entrada dos o tres prompts cortos que probablemente escribirás a continuación. Por ejemplo, después de que Claude explique un archivo, podría ofrecer Write a test for the login function.

Mientras la entrada está vacía, pulsar 1, 2 o 3 coloca esa sugerencia en la caja como borrador, y 0 cierra la lista. No se envía nada por sí solo: editas el borrador o pulsas Enter. En una terminal ancha, las sugerencias comparten una fila (next: 1 ... · 2 ... · 0 dismiss). Cuando no caben en una fila, cada una ocupa la suya, salvo que la franja tenga pocas filas libres; en ese caso se usa una sola fila, cortada al final.

Las sugerencias salen de una llamada al modelo haiku después del turno. La franja permanece oculta mientras Claude trabaja o hay una encuesta abierta, cuando la respuesta tiene menos de 20 caracteres y mientras siguen en ejecución agentes en segundo plano. Los turnos de subagentes se ignoran. El mod where-am-i del autor lee un indicador compartido para omitir su propia parte «next» mientras se muestra esta lista.

Demo

La grabación inicia Claude Code con el mod cargado en el pequeño proyecto de demostración y pide a Claude que lea src/login.js y lo explique en dos frases. Cuando el turno termina, aparece sobre la entrada una franja next: con tres sugerencias numeradas, como Add error handling for empty strings y Write a test for the login function, y la indicación 0 dismiss. El vídeo se detiene en esa pantalla; después se pulsa 1 en el prompt vacío y la primera sugerencia aparece en la entrada como un borrador sin enviar. El clip está acelerado, así que las pausas son más cortas de lo que parecen.

Instalación

Usa cualquiera de los métodos del bloque de instalación; instalan directamente desde el marketplace propio del autor. La franja aparece después del siguiente turno completado.

$ install next-steps

Requiere Claude Code ≥ 2.1.287

Se instala desde el marketplace del autor: hamzafer/claude-code-mods

  1. 1.Una línea, dentro de Claude Code

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

    Pégala en una sesión abierta (v2.1.275+). Claude Code te pedirá primero añadir el marketplace.

  2. 2.Desde tu shell

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

    Después ejecuta /reload-plugins en cualquier sesión que ya esté abierta.

  3. 3.Pruébalo sin instalarlo

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

    Carga el mod solo para una sesión. No se añade nada a tu configuración.

Cómo funciona

El mod guarda la lista actual en un átomo $.state que conserva el host y la dibuja en el punto de render AbovePrompt, debajo de las franjas de otros mods. La gestión de 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
})

En turn.complete (solo el agente principal), suggest llama a $.model.complete con maxTokens: 200 y un tiempo límite de 20 segundos. Se pide al modelo 2 o 3 prompts en imperativo de menos de 60 caracteres, uno por línea, o NONE. Después, parseSteps quita bloques de código, viñetas, numeración, comillas y rayas, descarta preámbulos y líneas de más de 120 caracteres (descartadas, nunca cortadas), elimina duplicados y conserva como máximo tres. El resultado solo se escribe si mientras tanto no ha empezado un prompt ni un turno nuevo, así que una respuesta tardía nunca sustituye un estado más reciente. prompt.submit y turn.start vacían la lista.

Personalízalo

No hay opciones en /config. Para cambiar el comportamiento, edita las constantes al principio de register.tsx: MODEL (por defecto haiku), MAX_ITEMS (3), MAX_CHARS (60, lo que se pide al modelo), MAX_KEPT (120, la línea más larga que se conserva) y MIN_ANSWER (20, la respuesta más corta que dispara una llamada). El texto de la petición al modelo está en las cadenas system y prompt de suggest.

Permisos y seguridad

Leemos todos los archivos que el plugin puede ejecutar antes de ejecutar nada: .claude-plugin/plugin.json, hooks/hooks.json, hooks/register.tsx (el único módulo), las declaraciones de tipos y las pruebas. No hay package.json, script de instalación, binario ni código empaquetado o minificado, y no se carga nada desde fuera de la carpeta del plugin.

  • Llamada al modelo. Después de cada turno completado del agente principal, suggest envía al modelo haiku, mediante $.model.complete, hasta los últimos 6 mensajes de la sesión (cada uno recortado a 800 caracteres) y la última respuesta (recortada a 2.000 caracteres). Usa tu cuenta de Claude Code como cualquier otra llamada al modelo, y el mod no abre ninguna otra conexión de red. El texto es contenido de la sesión, así que puede incluir todo lo que hayáis tratado tú y Claude.
  • Texto del prompt. Las instrucciones propias del mod para el modelo son cadenas simples y legibles. No inyecta nada en tus prompts ni en el contexto de Claude: la salida del modelo solo llega a la caja de entrada como borrador que tienes que enviar tú. Como las sugerencias se escriben a partir de la transcripción, el texto de un archivo que Claude haya leído aún podría influir en lo que se sugiere, y lo verías antes de enviar.
  • Hooks de teclas y de prompt. prompt.edit sustituye un dígito escrito en un prompt vacío por el texto de la sugerencia, o se traga el 0. prompt.submit solo vacía la lista y pasa el prompt sin cambios. claude plugin validate señala que prompt.submit es un hook de control sin .catch, pero nunca bloquea ni reescribe un prompt.
  • Nada más. No ejecuta comandos, no lee ni escribe archivos, no toca ajustes, archivos de shell ni daemons, no lee variables de entorno y no tiene telemetría. El estado lo guarda el host en memoria. La licencia es MIT, con un archivo LICENSE en el repositorio.

claude plugin validate no informó de errores ni advertencias, y las 16 pruebas del autor pasaron en Claude Code 2.1.291.

Llama al modelo (usa tu cuota)
Puede enviar sus propias peticiones a Claude, que cuentan para el uso de tu plan ($.model.* / $.agent.spawn).
Lee tus prompts
Puede ver lo que escribes y la transcripción de la conversación (prompt.* / session.append / session.messages).
Modifica la interfaz
Dibuja en la interfaz de Claude Code: bandas, paneles, texto de estado, avisos (ui.render / $.ui.*).

Compatibilidad y solución de problemas

Comprobado con Claude Code 2.1.291 en macOS (validate, pruebas y la grabación de la demo). Si no aparecen sugerencias:

  • La última respuesta fue muy corta (menos de 20 caracteres) o el modelo no tenía nada sensato que añadir.
  • Siguen en ejecución agentes en segundo plano; la llamada espera hasta que el agente principal retome el trabajo.
  • Claude sigue trabajando, o hay una encuesta abierta sobre el prompt. La franja aparece cuando termina el turno.
  • Pulsaste un dígito con texto ya en la caja, o lo pegaste. Los dígitos solo actúan en un prompt vacío.
  • Enviaste un prompt o empezaste un turno nuevo, lo que vacía la lista hasta que el turno termine.

Preguntas frecuentes

¿Next Steps envía mis prompts por mí?
No. Un dígito solo coloca la sugerencia en la caja de entrada como borrador. Puedes editarla o pulsar Enter. No se envía nada hasta que lo hagas tú.
¿Gasta tokens?
Sí, un poco. Después de cada turno hace una llamada al modelo haiku a través de la propia API de modelos de Claude Code, con hasta 6 mensajes recientes y la última respuesta como entrada. Omite la llamada para respuestas de menos de 20 caracteres y mientras haya agentes en segundo plano en ejecución.
¿Cómo escribo un prompt que empiece por un dígito mientras se muestra la lista?
Pulsa 0 primero. Cierra la lista y deja la caja vacía, así que el siguiente dígito entra como texto. Los dígitos escritos después de otro texto y los pegados siempre entran como texto.
¿Cuándo desaparece la lista?
Cuando envías un prompt (también un comando con barra), cuando empieza un turno nuevo, cuando pulsas 0 y mientras Claude trabaja o hay una encuesta abierta sobre el prompt.
¿Puedo cambiar el modelo o el número de sugerencias?
No hay ajustes, pero las constantes al principio de hooks/register.tsx lo controlan: MODEL, MAX_ITEMS, MAX_CHARS, MAX_KEPT y MIN_ANSWER. El prompt para el modelo está en la función suggest del mismo archivo.
Context Bar funcionando en Claude CodeDestacado

Context Bar

La ventana de contexto de Claude Code como una barra apilada sobre el prompt, un color por categoría, con tokens.

  • sobre el prompt
  • Modifica la interfaz
  • Añade comandos/herramientas
  • Guarda datos

probado con v2.1.291

md-preview funcionando en Claude CodeDestacado

md-preview

Los archivos Markdown que edita Claude, renderizados como GitHub en un panel junto al chat, con antes y después.

  • panel
  • aviso
  • Lee archivos
  • Escribe archivos
  • Ejecuta comandos
  • Intercepta llamadas a herramientas
  • Modifica la interfaz
  • Añade comandos/herramientas

probado con v2.1.291

Más en Temporizadores, tareas y standups.