Entrevista profunda greenfield + decide stack (priorizando Luana: FastAPI + Next.js + Clerk + Postgres + Qdrant) + scaffold inicial + PROJECT-MAP. Para proyectos VACÍOS o casi vacíos. NO ejecutar en proyectos con código existente — usar /project-audit en su lugar. Activa cuando Chris dice: '/project-bootstrap', 'arrancamos proyecto nuevo', 'greenfield', 'desde cero', 'bootstrap proyecto', 'crear scaffold', 'iniciá proyecto'.
Cuándo se usa: Chris arranca un proyecto completamente nuevo. Sin código, sin docs, solo idea. Cuándo NO se usa: proyecto con código existente — usar
/project-audit.
ROOT=$(pwd)
TRACKED=$(git ls-files 2>/dev/null | wc -l)
[ "$TRACKED" -gt 5 ] && {
echo "⚠️ Proyecto NO está vacío ($TRACKED archivos tracked). Considera /project-audit en su lugar."
echo "¿Continuar bootstrap igual (overwrite risk) o switch a /project-audit?"
exit 1
}
# Verify cwd target
[ -d ".luana-method-cache" ] && KIT_PATH=".luana-method-cache/luana" || KIT_PATH="${LUANA_METHOD_PATH:-../luana-method/luana}"
[ -d "$KIT_PATH" ] && echo "Method kit found at $KIT_PATH" || echo "❌ Method kit not found. Set LUANA_METHOD_PATH env var or clone luana-method first."Style: complete sentences, batched, wait response between batches.
Una vez recibidas todas las respuestas, presentar las decisiones agrupadas con racional explícito. Formato:
# Tech decisions — propuesta
## Decisión 1 — Runtime + framework backend
**Propuesta:** Python 3.12 + FastAPI async (Pydantic v2 + SQLAlchemy 2.0 async)
**Por qué:**
- Alineado con Luana know-how → transfer learning inmediato
- Async-first nativo (importante para LLM/agentic Phase 1 Batch 3)
- Type hints + Pydantic v2 maduros (rigor type-safe sin TS server-side)
- ORM SQLA 2.0 con async ergonómico
**Alternativa considerada:** NestJS (TS unificado FE+BE)
**Descartada porque:** {razón basada en Phase 1 respuestas — ej. "preferencia stack Luana confirmada en Batch 3.1"}
## Decisión 2 — Frontend
**Propuesta:** Next.js 16 App Router + React 19 + Shadcn UI + Tailwind CSS v4
**Por qué:**
- Server Components default = performance + SEO + bundle reduction
- Shadcn baseline cubre 90% UI sin reinventar (Phase 1 Batch 4.2)
- Tailwind v4 con tokens semantic (no hex hardcoded)
- App Router maduro 2026
**Alternativa considerada:** Vite SPA (más liviano, sin SSR)
**Descartada porque:** {razón}
## Decisión 3 — Auth
**Propuesta:** Clerk
**Por qué:**
- B2B SaaS-ready (Organizations cuando escale)
- Webhooks + JWT + middleware Next.js + FastAPI listos
- HIPAA-eligible (relevant si Phase 1 Batch 2.1 = HIPAA)
- Luana know-how (Phase 1 Batch 3.1)
**Alternativas consideradas:**
- Auth0 (caro a escala)
- Supabase Auth (acoplado a Supabase DB)
- Lucia / custom (esfuerzo + audit risk)
**Descartada(s) porque:** {razón}
## Decisión 4 — Database
**Propuesta:** PostgreSQL 16+ + Alembic migrations idempotentes
**Por qué:**
- JSONB rich (sirve para schema-flex en bounded contexts evolucionando)
- Async driver maduro (asyncpg)
- Luana know-how
**Alternativa:** PlanetScale (MySQL-compat) — descartada si needed pg features
**Vector DB (si LLM/agentic Phase 1 Batch 3.4):** Qdrant
**Cache layer:** Redis (sessions, rate-limit, queues)
## Decisión 5 — LLM provider (solo si agentic)
**Propuesta:** Anthropic Claude API con prompt caching (5min/1h TTL)
**Modelo routing:**
- Architect/auditor: Opus 4.7 (rigor + cost OK)
- Builder/synth: Sonnet 4.6 (balance)
- Reader/grep: Haiku 4.5 (cheap)
**Framework agentic:** LangGraph 2.0 + deepagents (SubAgentMiddleware isolation)
**Alternativa:** OpenAI GPT-4 + LangChain — descartada por prompt caching superior Anthropic + know-how Luana
## Decisión 6 — CI/CD
**Propuesta:** {match Phase 1 Batch 5.3}
**Workflows:** ci.yml (full gates) + ci-wip.yml (light) + cd-staging.yml + cd-prod.yml
**Triple-branch:** wip/{slug} → main (staging deploy) → release/vX.Y.Z (prod)
**Quality gates:** lint + arch fitness + tests + coverage + jscpd + interrogate + pip-audit
## Decisión 7 — Deploy target
**Propuesta:** {match Phase 1 Batch 5.4}
**Containerization:** Docker compose dev + Dockerfiles per service
**Production:** {depends — Vercel para FE + AWS/Fly.io para BE / Cloudflare para FE+workers / etc.}
## Decisión 8 — Worktrees + parallel sessions
**Propuesta:** {match Phase 1 Batch 5.2 — paralelos por default si Chris confirma}
**Topology:** PRINCIPAL (main) + CANÓNICO (wip/{slug} long-lived) + EFÍMERO (wip/{slug-story} por feature)
**Sync KISS:** scripts/git/sync-from-main.sh + scripts/git/check-sync.sh
## Decisión 9 — Testing strategy
**Propuesta:**
- BE: pytest + pytest-asyncio + coverage 43% threshold
- FE: Vitest (unit) + Playwright (E2E, Clerk testing token lifecycle)
- Arch fitness: tests/architecture/ ratchet (allowlists shrink-only)
## Decisión 10 — Observability + cost recording
**Propuesta:**
- structlog para BE logs (no print/logging)
- copilot_trace_event + copilot_llm_call tables (si agentic)
- pricing_snapshot_repository.py
- PII sanitization en payloads (sanitize_payload helper)
**Alternativa:** Sentry + Datadog APM — sumar en Phase 2 si scale lo amerita
---
Chris, ¿ratificás esta propuesta o ajustamos alguna decisión?Loop hasta Chris ratifica todas las decisions. Captura overrides explícitos en notas.
Una vez ratificado, ejecutar scaffold completo. Plantillas vienen del kit Luana en $KIT_PATH/init/.
KIT="$KIT_PATH"
PROJECT_NAME="${1:-$(basename $(pwd))}"
# 1. Backend scaffold (si stack incluye BE)
if [ "$BACKEND_LANG" = "python" ]; then
mkdir -p backend/src/{modules,core,main.py}
mkdir -p backend/{tests/{architecture,modules},alembic/versions}
cp -r $KIT/init/backend-scaffold/python-fastapi/* backend/
fi
# 2. Frontend scaffold (si stack incluye FE)
if [ "$FRONTEND_FRAMEWORK" = "nextjs" ]; then
mkdir -p frontend/src/{app,components/{ui,shared},features,lib,hooks}
mkdir -p frontend/{e2e/{specs,fixtures,pages},public}
cp -r $KIT/init/frontend-scaffold/nextjs/* frontend/
fi
# 3. Docs scaffold
mkdir -p docs/{product/{outcomes,stories,capabilities,modules},architecture/ADR,domains,learnings,process,specs/templates,rules-detail,archive}
cp -r $KIT/docs/specs/templates/* docs/specs/templates/
cp -r $KIT/docs/rules-detail/* docs/rules-detail/
cp -r $KIT/docs/process/* docs/process/
cp $KIT/docs/architecture/ADR/* docs/architecture/ADR/
# 4. Claude scaffold
cp -r $KIT/claude/. .claude/
# 5. Scripts
cp -r $KIT/scripts/. scripts/
chmod +x scripts/git/*.sh scripts/git-hooks/*
# 6. Root files (templates con placeholders interpolados)
sed "s/{PROJECT_NAME}/$PROJECT_NAME/g" $KIT/init/root-files/CLAUDE.md.template > CLAUDE.md
sed "s/{PROJECT_NAME}/$PROJECT_NAME/g" $KIT/init/root-files/AGENTS.md.template > AGENTS.md
sed "s/{PROJECT_NAME}/$PROJECT_NAME/g" $KIT/init/root-files/Makefile.template > Makefile
sed "s/{PROJECT_NAME}/$PROJECT_NAME/g" $KIT/init/root-files/docker-compose.dev.yml.template > docker-compose.dev.yml
sed "s/{PROJECT_NAME}/$PROJECT_NAME/g" $KIT/init/root-files/pyproject.toml.template > pyproject.toml
sed "s/{PROJECT_NAME}/$PROJECT_NAME/g" $KIT/init/root-files/.env.dev.template > .env.dev.template
cp $KIT/init/root-files/.gitignore.template .gitignore
# 7. GitHub workflows
mkdir -p .github/workflows
cp $KIT/init/github-workflows/*.yml .github/workflows/
# 8. Initial git commit
git init 2>/dev/null
git add .
git commit -m "chore: bootstrap proyecto via /project-bootstrap (Luana method v0.1)"
# 9. Install hooks
ln -sf $(pwd)/scripts/git-hooks/pre-commit .git/hooks/pre-commit
ln -sf $(pwd)/scripts/git-hooks/pre-push .git/hooks/pre-push 2>/dev/null
# 10. Bootstrap deps
[ -f pyproject.toml ] && uv sync
[ -f package.json ] && pnpm install
echo "✅ Scaffold complete. Próximo paso: /pm para crear primer outcome."Genera docs/PROJECT-MAP.md con scaffold inicial:
# PROJECT-MAP.md
> Auto-gen via `python scripts/generate_project_map.py`. NO editar manual.
> Last regen: {date}
## Overview
- **Project:** {PROJECT_NAME}
- **Stack:** {detected from Phase 2 decisions}
- **Topology:** {DDD modular BE + FSD-Lite FE}
- **Phase:** bootstrap
- **Last touched:** {today}
- **Method version:** Luana method v0.1
## Architecture snapshot{PROJECT_NAME}/ ├── backend/ ← FastAPI async + SQLA 2.0 + Pydantic v2 │ ├── src/ │ │ ├── main.py ← FastAPI app (redirect_slashes=False) │ │ ├── core/ ← config, db, deps, middleware │ │ └── modules/ ← DDD modules (vacío — primer outcome lo poblará) │ └── tests/ ├── frontend/ ← Next.js 16 + Shadcn + Tailwind v4 + FSD-Lite │ ├── src/ │ │ ├── app/ ← App Router │ │ ├── components/ ← ui + shared │ │ ├── features/ ← FSD-Lite (vacío) │ │ └── lib/ │ └── e2e/ ├── docs/ │ ├── product/ ← outcomes + stories + capabilities + modules │ ├── architecture/ ← ADRs │ ├── domains/ ← tools/workflows registry (agentic) │ ├── learnings/ │ └── PROJECT-MAP.md ├── scripts/ ├── .claude/ └── docker-compose.dev.yml
## Modules
(vacío — primer outcome lo poblará via /pm → /po-ux → /architect → /dev-team)
## Active stories
(ninguna — /pm te ayuda a crear la primera)
## Conventions (target, no checked yet)
- Tenant isolation: pattern definido en `.claude/rules/tenant-isolation.md`
- DDD layering: ratchet en `backend/tests/architecture/` (cuando primer módulo nazca)
- FSD boundaries: ratchet en `frontend/src/__tests__/architecture/`
- Tests coverage targets: BE 43%, FE 20%
- Spanish neutro UI: opt-in via pre-commit hook
- Conventional Commits: ✅/pmSpawn /pm skill via Skill tool inline:
{ skill: "pm", args: "" }Con mensaje al user:
✅ Bootstrap complete.
Scaffold creado:
- backend/ (FastAPI + SQLA + DDD)
- frontend/ (Next.js + Shadcn + FSD-Lite)
- docs/ (story-folder schema + ADRs)
- .claude/ (skills + rules + agents + hooks)
- scripts/ (git + git-hooks + generators)
- .github/workflows/ (CI/CD)
Tech stack ratificado:
{stack summary}
Próximo paso: spawn /pm para crear primer outcome.
{Skill invocation inline}/pm necesita ese archivo en bootstrap/pm sin handoff Phase 5 explícitoPhase 1 (entrevista): Opus 4.7 — judgment-heavy. Phase 2 (decisions): Opus 4.7 — razonamiento técnico. Phase 3 (scaffold): Haiku 4.5 — bash execution. Phase 4 (PROJECT-MAP): Haiku 4.5 — templating.
Total: ~40-60k tokens. Caro pero one-shot por proyecto.
.claude/skills/project-audit/SKILL.md — el complemento (legacy adoption).claude/skills/pm/SKILL.md — destino post-bootstrapinit/backend-scaffold/, init/frontend-scaffold/, init/root-files/ — templates fuentedocs/process/paradigm-v4.md — método que el scaffold instaladocs/architecture/ADR/ — ADRs del método (worktree-policy, paradigm-v4.1, etc.)caa08df
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.