Project Quote
Convierte «esto es lo que quiere el cliente» en una cotización que el cliente pueda firmar: qué harás, en qué fases, cuánto cuesta y por qué, cuándo se paga, qué se asume y qué no está incluido. Los números provienen de un script calculador, nunca de cálculos mentales. También genera una tarjeta de tarifas de una página.
Uso
/project-quote <cliente>: <lo que quiere> [presupuesto] [plazo]
/project-quote tarjeta de tarifas
Las solicitudes en texto plano también funcionan:
- «Cotización para una identidad de marca de un tostador de café: logotipo, paleta, empaque para 3 SKU, listo en 6 semanas.»
- «Presupuesto para el diseño y gestión de fabricación de un stand de feria de 20×20 para Acme, presupuesto alrededor de $60,000.»
- «Haz mi tarjeta de tarifas: Director de Diseño $175/hora, Diseñador $120/hora, tarifa diaria $1,300.»
- «Convierte este correo del cliente (adjunto) en una declaración de trabajo (SOW).»
- «La misma cotización, pero con tarifas fijas por fase en lugar de por horas.»
Qué preguntar, una sola vez
Los datos de la persona hacen que la cotización sea suya. Primero busca en la conversación, la memoria y los archivos adjuntos; luego pregunta en un solo mensaje breve lo que falte:
- Tarifas: roles y tarifas por hora o por día (o una cotización o tarjeta de tarifas anterior para copiar).
- Detalles del estudio para el membrete: nombre comercial, contacto y colores o un archivo de logotipo que adjunten. Su propio logotipo puede ir en su propia cotización. Si no hay, usa una marca tipográfica limpia.
- Términos de pago que usan (porcentaje de anticipo, días netos), si tienen uno estándar.
Si dicen «solo hazlo», procede con valores predeterminados claramente marcados: 50% al firmar y 50% al entregar, neto 15, dos rondas de revisiones por entregable, 10% de contingencia, y válido por 30 días. Enumera los valores predeterminados en la respuesta.
Archivos. <skill-dir> significa la carpeta de esta habilidad, la que contiene este SKILL.md. Las plantillas están en assets/, los scripts en scripts/, y los pasos compartidos para PDF (fuentes, colores, renderizado, verificación) están en references/rendering.md.
Reglas estrictas
- Todas las matemáticas pasan por
scripts/quote_calc.py. Escribequote.json, ejecuta el script, pega sus tablas. Para cambiar un número, edita el JSON y vuelve a ejecutar. Nunca escribas un total a mano. - Las horas tienen razones. Cada fase enumera entregables, y cada elemento de línea es una tarea que un cliente reconocería. Si estimas horas, basálas en el alcance, di qué impulsa las grandes, y mantenlas realistas para la antigüedad de la persona.
- Nunca inventes las tarifas de la persona. Si preguntan «¿cuánto debería cobrar?», investiga los rangos de mercado actuales para su rol y región (encuestas de diseño, plataformas freelance, ofertas de trabajo), cítalos, etiquétalos como
Estimación, y deja que ellos elijan. - El alcance es explícito en ambos sentidos. Toda cotización tiene entregables «Incluidos» y elementos «No incluidos» (stock, impresión, compra de medios, revisiones adicionales, viajes, tarifas de licencia por fuentes o música), además de cómo se manejan los cambios.
- No es asesoramiento legal. Los términos son un punto de partida sensato. Recomienda un abogado para contratos grandes o inusuales, y nunca afirmes que los términos sean exigibles.
- Sin crédito a Beautiful Engine ni otras marcas de terceros: la cotización pertenece a la persona.
Flujo de trabajo
- Comprender el trabajo. Cliente, proyecto, entregables, cantidades, cronograma, restricciones, señal de presupuesto. Si la persona adjuntó un brief o correo, extrae cada entregable de ahí.
- Planificar fases (generalmente Descubrimiento, Concepto, Diseño o Desarrollo, Producción, Entrega) con entregables y puntos de revisión.
- Estimar cada fase como tareas con roles y horas, más costos directos (impresión, fabricación, viajes, licencias) como elementos fijos. Decide vista por hora o tarifa fija por fase (
"show_hours": false) según lo que prefiera la persona; por defecto, tarifas fijas por fase para clientes, con las horas guardadas en el JSON. - Calcular:
python3 <skill-dir>/scripts/quote_calc.py quote.json > tables.html. Imprime el total en stderr y falla si un rol no tiene tarifa o el cronograma de pagos no suma el 100%. Si hay una señal de presupuesto y el total no lo alcanza, ofrece opciones (reducir alcance, fasear el trabajo o un nivel más ligero) en lugar de recortar horas en silencio. - Escribir la cotización desde
assets/quote-template.htmlsiguiendo references/rendering.md (copiabase.css): pega los bloques ESTIMATE, SUMMARY y PAYMENTS detables.htmldonde estén marcados, completa el alcance, supuestos, cronograma y términos. Usa los colores y fuentes de la persona. - Renderizar, auditar, verificar. Confirma que el total en la página 1 coincida exactamente con el total del script, y que cada entregable de la solicitud del cliente aparezca en el alcance.
- Entregar el PDF, más
quote.jsonpara que pueda revisarse después. En la respuesta: el total, el cronograma de pagos en una línea, los supuestos que conllevan más riesgo y cualquier valor predeterminado que hayas usado.
Nombre de salida: <Estudio>-Cotizacion-<Cliente>-<Proyecto>-<YYYY-MM-DD>.pdf, con un número de cotización como Q-<YYYYMMDD>-01.
Tarjeta de tarifas
Desde assets/ratecard-template.html: servicios agrupados por tipo, cada uno con lo que incluye y la tarifa (por hora, por día o precio de proyecto «desde»), mínimos, cargos por urgencia, política de revisiones, términos de pago y contacto. Una página. Salida: <Estudio>-Tarjeta-De-Tarifas-<YYYY>.pdf.
Opciones y niveles
Cuando la persona quiere opciones, crea tres niveles (por ejemplo, Esencial, Recomendado, Completo) como fases separadas o archivos quote.json separados, ejecuta la calculadora para cada uno y muestra una tabla comparativa en la página 1 con el nivel recomendado marcado.