# Instrucciones — Quickstart en 5 pasos ## 1. Clonar y limpiar ```bash git clone https://gitea.fitlabs.dev/farentsen/fit-boilerplate-wox.git mi-cliente cd mi-cliente rm -rf .git && git init git add . && git commit -m "chore: bootstrap from fit-boilerplate-wox" ``` ## 2. Configurar entorno ```bash cp .env.example .env # Editar .env con: # ORCHESTRATE_API_URL — URL del tenant WxO # ORCHESTRATE_API_KEY — API key del tenant # WATSONX_API_KEY — (opcional) si usás Plan A webhook # PUBLIC_HOST — dominio público donde corre tu stack ``` ## 3. Registrar el environment WxO ```bash python3.12 -m venv .venv-wxo && source .venv-wxo/bin/activate pip install --upgrade "ibm-watsonx-orchestrate==2.1.0" orchestrate env add -n mi-tenant \ --iam-url https://iam.cloud.ibm.com/identity/token \ -u "$ORCHESTRATE_API_URL" orchestrate env activate mi-tenant ``` Verificar modelo: ```bash orchestrate models list | grep gpt-oss-120b # preferido para tool calling ``` Si no está, editá los YAMLs de los agentes generados y poné `meta-llama/llama-3-3-70b-instruct` (con la advertencia de `docs/known-issues.md` sobre el bug de tool-call-as-text). ## 4. Generar tu solución con la skill Instalá el skill primero (una sola vez por máquina): ```bash cp -r skill/fit-wxo-bootstrap ~/.claude/skills/ ``` En una sesión de Claude Code, ejecutá: > "Quiero arrancar una solución WxO para [tu caso de uso]" La skill te pregunta: 1. ¿Qué cliente/caso de uso? 2. ¿Cuántos dominios identificás? 3. ¿Tu backend ya existe o lo hacemos como mock? 4. ¿Qué stack web (default HTMX o React)? Luego dispara subagentes Claude en paralelo que escriben todos los YAMLs, tools, runbooks, evals y la app web. ## 5. Validar y desplegar ```bash ./scripts/check-adk-version.sh # avisa si hay versión nueva del ADK python3 evals/lint_wxo_yaml.py # falla si rompiste alguna best practice ./scripts/deploy-wxo.sh # idempotente: conexiones + tools + KBs + agents + canal ./evals/smoke-test.sh # end-to-end smoke ``` **Paso manual obligatorio** después del deploy: > WxO Console → Settings → Embed Security → **Off** Sin esto, el embed widget en tu landing page se queda en "Cargando agente…" para siempre. ## Siguientes pasos - `docs/architecture-patterns.md` — para decisiones de diseño - `docs/wxo-best-practices.md` — las reglas que el linter enforcea - `docs/known-issues.md` — si algo falla, mirá acá primero