Basado en un caso real de programación automática con Claude Code, compartiendo algunas técnicas de prompts

Este artículo, a través de un caso real, les compartirá un ejemplo práctico del uso de Claude Code. Antes de compartir, hagamos una pequeña encuesta.
Requisito original: Un usuario premium de pago deseaba que añadiera la fecha de modificación en los artículos.
A primera vista, este requisito parecía difícil de implementar. Porque los artículos de mi sitio web no están almacenados en una base de datos, sino que se construyen utilizando SSG de next.js. Simplemente no tienen una fecha de actualización.
Un truco aquí es: al resolver problemas, no debemos alimentar directamente el requisito original a Claude Code, por las siguientes razones:
1. El requisito original es relativamente vago, podría malinterpretarlo. Si lo malinterpreta, aunque finalmente añada una fecha, esa fecha podría no ser confiable.
2. El consumo de Tokens de Claude Code es realmente muy caro. Por lo tanto, un requisito vago podría llevar a un consumo masivo e inútil de Tokens.
Por lo tanto, debemos desglosar el requisito original. Primero consulté en deepseek, y deepseek me dio dos soluciones:
1. Tiempo de construcción del archivo: cada vez que hacemos build, necesitamos obtener el tiempo de construcción del archivo. Pero la estrategia de empaquetado de turbopack es un poco diferente; cada vez que se construye, el hash del archivo cambia, por lo que este tiempo de construcción podría no ser confiable.
2. La fecha de commit de git: pensé que esta debería ser más confiable.
Con una dirección de solución aproximada, tuve este prompt simple: Compilar la fecha de commit de git en el encabezado de cada artículo .mdx.
Claude Code es bastante confiable. Si el prompt es preciso, generalmente no hay problemas. Simplemente comenzó a ejecutar.
Después de consumir 7 dólares de mi crédito, tomó unos 20 minutos y finalmente se ejecutó con éxito.
Como era de esperar, ocurrió lo inesperado: omitió los cambios en 171 archivos.
Aquí hay un punto muy engañoso: en realidad, los archivos omitidos solo tenían un parámetro adicional pass pasado, todo lo demás era exactamente igual.
<PostLayout pass>...Pero no fue flexible; definió este parámetro adicional pasado como un componente personalizado completamente diferente. Y luego lo omitió y no lo procesó ~ ~
import Layout from 'components/post-layout';
import { getGitFileInfo } from '@/utils/git-info';
export default function Article({ children }: any) {
const gitInfo = getGitFileInfo('src/app/tu-ruta/page.mdx');
return (
{children}
);
}Pero la situación real es que necesitaba este resultado, y el resultado de la ejecución sería completamente idéntico.
import MdxLayout from 'components/mdx-layout';
export default function Article({ children }: any) {
return (
{children}
);
}Entonces, en este momento, caí en un problema con el prompt.
Ingresé el prompt nuevamente: Reestructura los 171 archivos omitidos de la misma manera que arriba.
Mi expresión, pensándolo bien, tenía un poco de ambigüedad. Porque Claude Code ya me había dado un plan sugerido, pero yo no lo aprobaba. Mi intención era modificar los archivos omitidos usando el mismo plan que los cientos de archivos ya modificados. Pero durante la ejecución, lo interpretó como: el plan que me sugirió arriba.
Esta ambigüedad hizo que ejecutara durante 20 minutos según el plan que yo no quería, e incluso hubo 2 errores de auto-reparación en el medio, devorando mis tokens vorazmente. Las dos interpretaciones ambiguas comenzaron a luchar, causando errores.
Finalmente, tuve que abandonar esta ejecución y redefinir claramente mi semántica.
Resumen
1. En los prompts, es mejor incluir soluciones relativamente estables y precisas. Cuanto menos piense la IA, mejor, para reducir la tasa de alucinaciones.
2. Los prompts de requisitos no deben tener ambigüedad. La ambigüedad puede causar errores. Aunque Claude Code finalmente puede repararlos, esto generará un gran consumo de tokens. Y dado que los LLM producen resultados basados en mecanismos de predicción, malinterpretaciones o ambigüedades tempranas harán que cada paso subsiguiente se aleje más en la dirección equivocada. Además, intentará ser lógicamente coherente, generando cosas que no existen. Cuanto más escribe, mayores son los problemas, y también aumenta la dificultad de revisión para el desarrollador. Si te dejas engañar por sus alucinaciones, las consecuencias pueden ser graves.
3. Las restricciones del lenguaje natural no son tan precisas como el código. Incluir nombres de archivos, variables de código, términos específicos de código, terminología profesional, etc., en los prompts reducirá enormemente las alucinaciones de Claude Code.





