Project Bootstrap
Un orquestador ligero. Este skill no contiene otros skills, sino que carga el skill adecuado en cada paso, ejecuta un script determinista para la creación de archivos y rellena plantillas con las respuestas del usuario. Si algún paso a continuación entra en conflicto con un skill copiado, este skill prevalece.
Reglas de precedencia — solo durante la sesión de configuración
Este orden aplica únicamente durante la sesión de configuración, mientras este skill esté activo. Cuando las instrucciones entren en conflicto durante la configuración, aplíquelas en este orden:
- Este skill (
project-bootstrap) — alcance de configuración, reglas de seguridad, regla de parada. - El
CLAUDE.mddel proyecto — a medida que se va creando. - El skill del stack — por ejemplo, el skill de SwiftUI o diseño para este tipo de proyecto.
- La lista de verificación del flujo de trabajo —
references/workflow.md, el proceso por defecto.
Una vez que la configuración termina, este skill deja de estar activo y el orden
expira: el CLAUDE.md del proyecto (junto con sus documentos) es el único
conjunto de instrucciones vigente para sesiones futuras.
Nunca instale dos marcos de trabajo en conflicto (por ejemplo, no instale tanto
un marco pesado basado en especificaciones como la lista de verificación de
flujo de trabajo de este skill). Si el usuario nombra explícitamente un marco
de trabajo, use ese en lugar de la lista de verificación por defecto y
registre la elección en docs/SETUP.md.
Reglas de seguridad (nunca anuladas)
- Nunca escriba secretos, claves API o tokens en ningún archivo generado, y nunca ponga un secreto del lado del servidor (por ejemplo, una clave secreta de API bancaria) dentro de una aplicación cliente.
- Nunca sobrescriba un archivo existente sin la aprobación del usuario
(
scripts/bootstrap.pylo rechaza por defecto;--forcees solo opt-in, y con--forceel script primero respalda cada archivo en<nombrearchivo>.pre-bootstrap.bak). - Solo durante la configuración: no comience a construir funcionalidades del producto en esta sesión.
Flujo de trabajo
Ejecute estos pasos en orden. No se salte ninguno.
1. Entrevista
Cargue references/interview.md. Haga sus preguntas una a la vez y escriba
cada respuesta en el documento correspondiente a medida que llegue — no
mantenga todo en la memoria de la conversación. Si el usuario responde varias
preguntas a la vez, registre cada respuesta dada, marque esas preguntas como
respondidas y continúe desde la primera no respondida — nunca vuelva a
preguntar una pregunta ya respondida. Deje de entrevistar cuando cada pregunta
tenga una respuesta o el usuario la difiera explícitamente (registre los
elementos diferidos en docs/STATE.md).
2. Ejecutar el script
Desde el directorio de este skill:
python3 scripts/bootstrap.py \
--project-name "<nombre de la entrevista>" \
--type <ios|web|python|generic> \
--purpose "<propósito de una línea de la entrevista>" \
--target <ruta al repositorio del proyecto nuevo> \
--allow-placeholders
--allow-placeholders es obligatorio aquí: en esta etapa las plantillas aún
contienen intencionadamente tokens de reemplazo {{...}} (el Paso 3 los
rellena), por lo que el script pasa la verificación con una advertencia de
token por archivo en lugar de fallar. El directorio de destino debe existir
(el repositorio del proyecto nuevo); el script da error si el destino no
existe en lugar de crear una ruta mal escrita — pase --create-target solo
si el usuario quiere explícitamente que el script cree ese directorio.
Esto crea los directorios y renderiza las plantillas de forma determinista. Informe exactamente lo que creó, saltó o sobrescribió — nunca afirme que un archivo existe si el script no lo reportó.
3. Rellenar las plantillas con las respuestas de la entrevista
Reemplace los prompts de relleno restantes en los archivos generados con las
respuestas reales: stack y comandos de compilación/prueba en CLAUDE.md /
AGENTS.md, alcance en docs/PRD.md, fases en docs/ROADMAP.md, términos
del glosario en docs/CONTEXT.md. Mantenga CLAUDE.md breve — si supera
aproximadamente 80 líneas, mueva los detalles a docs/ y deje una referencia.
4. Instalar skills del stack — fijados, leer antes de instalar
Cargue la referencia para el tipo de proyecto e instale solo los skills que enumera:
- iOS →
references/ios.md - Web →
references/web.md - Python / genérico → sin skill de stack por defecto; anote esa elección en SETUP.
Cada skill listado está fijado a un SHA de commit exacto en la tabla de
skills fijados de la referencia. Instalar significa: clonar el repositorio en
.claude/skills/ del proyecto, luego git checkout del SHA fijado — nunca
instale desde una rama móvil, y nunca cambie un pin sin registrar el nuevo SHA.
Leer antes de instalar es obligatorio. Después de clonar, antes de que la instalación cuente como completa, para cada skill:
- Lea su
SKILL.mdcompleto (y note cualquier otra cosa que cargue por defecto). - Escriba un resumen de 2–3 líneas: qué instrucciones cargará este skill en sesiones futuras.
- Marque cualquier cosa que solicite acceso a la red, uso de credenciales o comandos destructivos. Informe las banderas al usuario; no instale silenciosamente un skill que solicite cualquiera de esas cosas sin la aprobación del usuario.
Registre en docs/SETUP.md, por skill: nombre, URL de origen exacta, SHA
fijado, fecha de instalación y el resumen de lectura. No copie el contenido
de un skill dentro de CLAUDE.md — el skill permanece como una unidad
cargable separada.
5. Establecer la regla del flujo de trabajo
Escriba el bucle por defecto de references/workflow.md en CLAUDE.md si aún
no está allí: especificación → plan → construcción → revisión separada, una
fase por sesión nueva, docs/STATE.md actualizado al final de cada sesión.
6. Verificar — comprobación nueva, no la salida del Paso 2
Ejecute la verificación ahora, de nuevo, en modo --verify (lee el destino
tal como está actualmente y no modifica nada):
python3 scripts/bootstrap.py --verify --target <ruta al repositorio del proyecto>
No reutilice la salida de la ejecución del Paso 2 — esa ejecución es anterior
al relleno del Paso 3 y a las instalaciones del Paso 4. No agregue
--allow-placeholders al comando de verificación — el script rechaza esa
combinación directamente, porque la verificación debe ejecutarse contra
archivos rellenados. --verify falla en cualquier token de relleno restante
en los archivos generados: si falla en tokens, el Paso 3 no se completó —
vuelva atrás, rellene los tokens restantes y vuelva a ejecutar --verify
hasta que pase. --verify también verifica el contenido, no solo los tokens:
la lista de fuera de alcance del PRD debe estar no vacía, y docs/SETUP.md
debe registrar un SHA fijado para cada skill instalado (o indicar que no se
instalaron skills de stack). También:
- Confirme que
.gitignorecubre los secretos para este stack. - Confirme que la aplicación vacía/de plantilla del proyecto aún se compila con
el comando de compilación registrado en
CLAUDE.md(si existe un comando de compilación todavía). - Vuelva a leer
docs/SETUP.md: cada skill instalado debe estar listado con su URL de origen, SHA fijado, fecha de instalación y resumen de lectura.
7. Hacer commit
Un solo commit, nada más:
chore: initial project setup
Incluya solo los archivos de configuración. Si la identidad del usuario de git o un remoto no está configurado, dígalo y deje el commit al usuario — no invente ninguna de las dos cosas.
8. Detenerse
Muestre al usuario el árbol de archivos creado y la Fase 1 de
docs/ROADMAP.md. Luego deténgase. No comience la Fase 1, no construya una
funcionalidad y no ofrezca "solo comenzar el esqueleto" — la siguiente fase
pertenece a una sesión nueva (consulte references/workflow.md).
Válvula de escape: deténgase a menos que el usuario le indique explícitamente que continúe. Si lo hace, recomiende — una vez — que la Fase 1 aún ocurra en una sesión nueva, luego obedezca al usuario y continúe.
Archivos de referencia — cargar bajo demanda
| Archivo | Cargar cuando |
|---|---|
references/interview.md | Siempre — Paso 1. |
references/ios.md | El tipo de proyecto es ios. |
references/web.md | El tipo de proyecto es web. |
references/workflow.md | Paso 5, y cualquier sesión posterior que trabaje en un repositorio configurado. |