CreaRack-SL

Onboarding Dani

Guía de incorporación · Dani

CreaRack Pro · Entorno de desarrollo Windows Última actualización: 03-08-2026 (des-ranciado pre-vuelta: qué cambió jun-ago, plugins con namespace, gate Regla 0 opt-in, merge manual, servidor OPS, SSH solo NetBird, safe_push/estibador, Agente 2.18). Anterior: 24-05-2026 (s82 · onboarding rehecho: PS7 primero, prereqs, descarga autenticada, tokens reales, shortcut automático, “Apaga”, harness completo)

Para instalar tu entorno desde cero (PowerShell 7, herramientas, repos, tokens, primera sesión): sigue la guía única [[workspace—onboarding—setup-equipo-nuevo]]. Esta ficha solo cubre lo específico de tu rol.


Qué cambió mientras estabas fuera (jun–ago 2026)

Lo primero que debes leer a tu vuelta en septiembre. Resumen de alto impacto; el detalle vive en CreaRack-Pro/CLAUDE.md y las wikis enlazadas.

  • Skills y agents del método viven en PLUGINS con namespace (s186): se invocan /method:roast, /crearack:secre, etc. Los plugins se leen en vivo del repo claude-method — el pull de cada arranque los mantiene al día. Los plugins method-design y method-marketing son OPCIONALES y van apagados por defecto (dieta 28-07): en tu primer arranque tu listado no tendrá las skills design-*; si las necesitas, /plugin → habilitar method-design (una vez, persistente).
  • Gate Regla 0: desde el 03-08-2026 vive en el plugin method y es opt-in por marcador .claude/bib-gate.json (los repos CreaRack lo llevan). Tu primer arranque converge solo; los tombstones de memorias compartidas derogadas se aplican en tu 2º arranque (el sync procesa memorias antes del pull).
  • Tu primer push correrá mypy en frío en el gate pre-push (~4 min) — no es un cuelgue, es la caché fría.
  • Skills nuevas: /method:plan-review (revisión fría de planes técnicos) y /method:iniciar-proyecto (arrancar un proyecto nuevo con Biblioteca propia). roast/storm/divergir/os-audit ya existían de jun-jul — ahora con prefijo /method:.
  • “La antesala” + apuestas: ante una decisión de nivel, primero se elige la herramienta de deliberación (/divergir · /grill · /roast · /storm) y las decisiones gordas se cierran con apuesta pre-registrada en CreaRackSL-workspace/public/supercontext/WAGERS.md. Regla completa: CreaRack-Pro/.claude/rules/antesala.md.
  • Ciclo push→CI→merge: push blindado vía scripts/ci/safe_push.sh <rama> y agente crearack:estibador (despacha rama→PR→CI→merge en background). El merge es squash MANUAL al verde (gh pr merge <N> --squash; --auto falla) — el auto-merge de s56 se retiró. ⚠ Merge a main = deploy DIRECTO a PROD.
  • Servidor OPS (crearack-ops): nuevo server con los runners CI self-hosted y TODOS los crons del ecosistema. STAGE queda en DR + Dokploy + staging. SSH a PROD SOLO por NetBird (el acceso por IP pública se cerró).
  • Local Agent: instalador Inno Setup desde 2.17.0 (compilarlo exige Inno Setup 6 — winget install JRSoftware.InnoSetup), auto-update, y salud en el heartbeat desde 2.18.0; el Fleet Manager muestra el footprint de cada agente. Pipeline: wiki [[crearack-tech—guides—agent-distribution]].
  • Deploys de Pro parten de imagen base privada GHCR (crearack-base): un deploy pasó de >15 min a ~1 min.
  • Producto EN canónico (i18n en marcha): la UI del producto se escribe en inglés; el español llega por traducción.
  • Tu entorno a la vuelta: está decidido que trabajarás desde una VM Windows del Proxmox de Esferic (tu PC personal queda con un Claude “limpio”, sin harness). La migración se hará al llegar — hasta entonces, lo que esta ficha describe como “tu PC” sigue siendo tu máquina actual.

Antes de empezar

Tras la migración GitHub User → Organization (s74, 19-05-2026), el acceso a los repos se gestiona a nivel Org CreaRackSL, no como collaborator por repo.

Edu te enviará invitación al Org con role Owner (igualdad de accesos del staff, Regla 24). Acéptala desde el email o desde https://github.com/orgs/CreaRackSL/invitation logueada con tu cuenta dfuentes-esfericlabs. Una vez aceptada, tendrás acceso admin a los 3 repos:

  • CreaRackSL/CreaRack-Pro → admin
  • CreaRackSL/CreaRackSL-workspace → admin
  • CreaRackSL/claude-method → admin

Reglas del proyecto post-Supercontexto

Desde el cierre del roadmap Supercontexto (22-04-2026) hay un bloque de reglas operacionales que aplican a toda sesión Claude Code en los repos del equipo. Claude las sigue automáticamente; este resumen es tu referencia.

ReglaQuéPor qué
0 · Biblioteca primeroConsultar bib_ask/bib_search_semantic/read_guide ANTES de cualquier tarea no trivialLa Biblioteca es la memoria del proyecto; ignorarla es incumplir la forma de trabajar
3 · Docs incrementalesActualizar CLAUDE.md/README.md/CHANGELOG.md/RELEASE_NOTES.md en cada commit relevante (TASK.md jubilado — el estado vivo va en Supercontexto + Gestor)Evita acumular deuda de documentación
14 · Verify CI tras pushComprobar TODOS los workflows del commit (gh run list --json conclusion,name — NO --limit 1) tras cada git push con código. Lo suele hacer el agente crearack:vigia en background; tras sus ráfagas, verifica tú el efecto (git status + HEAD vs origin)Dokploy deploya aunque CI falle — errores invisibles días
15 · HTTP 200 ≠ éxitoScripts que hablan con APIs deben parsear body.errors y devolver exit≠0 cuando falle semánticamenteEl MCP handler devolvía 200 con errors:[...] y scripts lo tomaban como OK
17 · Infra no en PC personalCrons/webhooks/servicios críticos viven en infraestructura compartida (servidor OPS, CF, GitHub Actions)SPOFs en máquinas de humanos se caen sin avisar
18 · Pre-commit = CI · pre-push = tests del áreaCada check rápido de CI (ruff, biome, typecheck) tiene gemelo en el pre-commit. El pre-push es un gate rápido (scripts/ci/pre_push_tests.sh, ~1-2 min): tests del área tocada, gemelo del CI (settings test + BD directa + mypy idéntico). La suite entera la corre SIEMPRE el CIErrores solo visibles tras push = ruido y frustración; el gate corto no penaliza el flujo
16 · Nunca [skip ci]Push siempre dispara CI, sea código o docs-only. Reformulada 30-04-2026 con upgrade a GitHub ProPolítica previa de [skip ci] saltaba CF Pages Deploy y Bibliotecario-Ingest — los cambios de docs no llegaban a producción ni al grafo
19 · SupercontextoSi tocas public/supercontext/ o sistema Supercontexto: leer STATE.md + NEXT.md al arrancar, actualizar al cerrarProyecto multi-sesión autónomo con continuidad
20 · Push vs PR + merge MANUALPR obligatorio si: >5 archivos · toca migrations/compose/Dockerfile/settings/workflows · commit feat:/refactor:. Push directo solo docs-only en la práctica (main protegida con checks rechaza el push directo de código, GH006). Merge al verde, MANUAL: gh pr merge <N> --squash (--auto falla; al verde mergea quien conduce la sesión, sin pedir OK a otro). ⚠ Merge a main = deploy DIRECTO a PROD (Dokploy auto-deploya y auto-migra, sin gate STAGE intermedio). Para si el diff muestra secretsEl auto-merge de s56 se retiró: con deploy directo a PROD, el merge es un acto consciente de quien conduce
21 · Tamaño de commitBug fix ≤80 LOC, 1 fix = 1 commit · Feature ≤400 LOC. Excepciones documentadas: cierres de iniciativa multi-sesión (supercontext(iN):), refactors mecánicos masivos, backfills programáticos con script idempotenteInspirado en harness de Reddit. Evita normalizar commits gigantes que rompen revisión granular
22 · Definitivo > rápidoAnte 2 caminos (definitivo vs rápido/temporal), ir con el definitivo si el criterio mínimo está cumplido. No fragmentar acciones reversibles “por prudencia”. Acciones irreversibles (force push, drop schemas, deploy infra) sí justifican cautelaAprendido sesión 32 (27-04-2026). Ahorra ciclos de “esperar N días más antes de aplicar” cuando el cambio es reversible y los datos ya respaldan la decisión
23 · No dejar deudas — terminar bienCada tarea termina con sus deudas asociadas resueltas en el mismo commit o documentadas con plan/dueño/fecha en STATE.md / issue. Prohibido “lo apunto y ya veremos”. La deuda legítima existe (waiting upstream, ventana de mantenimiento) pero con plan visibleVerbalizada sesión 42a (30-04-2026). Antes de cerrar sesión: para cada deuda detectada — ¿cerrada o documentada con plan? Si ninguna, no terminar

Detalle completo en CreaRack-Pro/CLAUDE.md § 1 (tabla resumen) + CreaRack-Pro/context/RULES_DETAIL.md (ampliaciones, historial “aprendido el día X” y matices operativos por regla). Nuevas desde tu marcha: “la antesala” (elegir la herramienta de deliberación antes de una decisión de nivel) + apuestas en WAGERS.md — ver la sección “Qué cambió” arriba. El equivalente de la Regla 20 en workspace es la Regla 14 (ambos repos aplican el mismo criterio con distinta numeración histórica).

Hook automático WORKLOG (sesión 27)

Tu Claude Code tiene un Stop hook configurado por bootstrap-profile.ps1 / setup-claude-code.ps1 que dispara un reminder en stderr cuando detecta ≥3 commits combinados en los repos del proyecto (CreaRack-Pro + workspace) en las últimas 4h. Cumple Regla 12 sin disciplina manual. Solo se dispara 1 vez al día (marker idempotente en ~/.claude/projects/<key>/last-worklog-stamp.txt). Si quieres desactivarlo temporalmente, abre /hooks en Claude Code o borra la sección hooks.Stop de ~/.claude/settings.json.

Fin de sesión · protocolo «Apaga»

Palabra clave de cierre del equipo: escribe «Apaga» (o «Apaga y vamonos») y Claude ejecuta el ritual completo sin pedir confirmación. Qué hace (lo que aplique según lo que tocaste):

  1. Supercontexto (si lo tocaste): actualiza public/supercontext/STATE.md (snapshot) + LOG.md (entrada). NEXT.md solo si cambió el backlog.
  2. WORKLOG.md del workspace: bloque del día (resumen coloquial + detalle técnico, formato híbrido s64). Siempre.
  3. Tag opcional supercontext/sesion-N-done si fue significativa.
  4. Pre-push Sync Cascade: si tocaste src/content/wiki/*.md con mirrors:, actualiza los espejos en el mismo commit; tras push + CI verde, revisa/procesa PR drafts sync-cascade-proposal con criterio.
  5. Commits + push: git pull --rebase origin main antes (Regla 4), nunca [skip ci] (Regla 16), particionar por repo.
  6. Verificar CI (Regla 14): TODOS los workflows del commit por repo (gh run list --json conclusion,name, no --limit 1); no cerrar si rojo.
  7. Memorias: actualizar feedback_*/footguns_*/project_* + MEMORY.md si hubo aprendizajes.
  8. Backup memoria (dual): claude-method/harness/claude-backup.ps1 -PushGit — .zip a OneDrive + memoria al repo CreaRackSL/claude-backups. Recuperar: claude-backup.ps1 -Restore -FromGit -Name dani.

Variantes: «Apaga», «Apaga y vamonos», «apaga». Está propagado vía la memoria compartida feedback_apaga_cierre_sesion — tu Claude ya lo conoce.

Hook automático claude-method auto-sync (s60, evolucionado)

Tu SessionStart (consolidado en session-start.ps1, s99) ejecuta claude-method-sync.ps1 en cada arranque, envuelto en try/catch + exit 0 (silent failure si estás offline: la sesión arranca igual). Hoy el sync hace:

  • git pull --rebase del repo C:\dev\claude-method.
  • Convergencia POR HASH de reglas (~/.claude/rules/), memorias compartidas (con filtro por rol, índice auto-generado y tombstones: una memoria derogada listada en shared-memory/_retired.txt se archiva sola de tu perfil, sin re-onboarding) y settings del equipo.
  • Instaladores idempotentes: plugins del método, session-hooks, coralline, git-config del equipo, git-hooks.

Las skills y agents ya NO se copian a tu perfil: viven en los plugins del repo (plugins/method/, plugins/crearack/…) y Claude Code los lee en vivo — el pull basta para tenerlos al día. Cierra el Gap 1 del propagador: si Edu añade una skill o regla al método central, tú la recibes automáticamente la siguiente sesión sin ejecutar nada a mano.

Promover local → central · claude-method-promote.ps1 (s60, ahora hacia plugins)

Si creas un agente o una skill en tu Claude Code y quieres compartirlo con Edu/Txell, no tienes que copiar archivos a mano al repo claude-method. El script C:\dev\claude-method\harness\claude-method-promote.ps1 lo hace por ti:

pwsh -NoProfile -File C:/dev/claude-method/harness/claude-method-promote.ps1 `
    -Type agent -Name <name> -Plugin <method|crearack>
# o:
pwsh ... -Type skill -Name <name> -Plugin <method|crearack>

El script:

  1. Lee el agente/skill de tu ~/.claude/{agents,skills}/.
  2. Detecta CREATE (no existe en central) / UPDATE (diverge, requiere -Force) / IDENTICAL (ya promovido y al día).
  3. Valida que el frontmatter tenga name: + description: (sin description Claude no lo invoca nunca).
  4. Copia a claude-method/plugins/<plugin>/{agents,skills}/, commit con mensaje generado, push directo a main.

Modos: -DryRun (simula sin tocar), -NoCommit (copia y para), -NoPush (commit local pendiente), -Force (sobrescritura intencional en UPDATE).

Convención humana — pregúntate antes de invocar: “¿esto es transversal — útil para los 3 — o solo del proyecto X?”. Si es del proyecto, vive en <repo>/.claude/skills/ (ya trackeado en git), NO uses promote. El central es para tooling cross-project.

Tras el push, Edu/Txell lo reciben automáticamente la siguiente sesión vía el git pull del SessionStart (los plugins se leen en vivo del repo). Cierra el Gap 2 del propagador (cerrado en la misma sesión s60 tras el Gap 1).


Harness Engineering — dos checks en cada commit

El setup del bootstrap (ver [[workspace—onboarding—setup-equipo-nuevo]]) ya instaló el hook. Cada vez que hagas git commit, se disparan dos validaciones:

6.1 Check arquitectural (pre_commit_check.py)

Valida sobre los archivos staged:

  • Archivos Python no excedan 500 LOC
  • No haya SQL interpolado con f-strings en MAYÚSCULAS (previene inyección SQL)
  • No se use |safe en templates (previene XSS)
  • CONN_MAX_AGE sea 0 (requerido por Daphne ASGI)

6.2 Check de Biblioteca (bib_report_check.py) — nuevo desde Abril 2026

Si has modificado archivos de código, exige que antes del commit hayas llamado a bib_report_change para cada uno, para que el grafo de conocimiento no se desincronice.

Flujo correcto:

  1. Editas core/models.py (por ejemplo).
  2. git add core/models.py.
  3. En Claude Code: bib_report_change(file_path="core/models.py", change_type="modified").
  4. git commit. Ambos checks pasan.

Si te olvidas del paso 3, verás un mensaje así:

[X] BIBLIOTECA REPORT MISSING (commit blocked):
  core/models.py

Ejecuta en el MCP workspace, por cada archivo listado:
  bib_report_change(file_path='<ruta>', change_type='modified|created|deleted')

Bypass puntual (solo en casos justificados, documéntalo en el mensaje):

$env:BIB_SKIP=1; git commit -m "..."

Cada bypass queda registrado en https://workspace.crearack.com/biblioteca/pulse (tarjeta “Bypasses BIB_SKIP · 7d”).

Checks completos del pre-commit (sincronizado con CI — Regla 18)

CheckQué valida
pre_commit_check.py · LOCArchivos Python <500 LOC
pre_commit_check.py · SQLNo hay SQL interpolado con f-strings MAYÚSCULAS
pre_commit_check.py · safeNo se usa |safe en templates
pre_commit_check.py · CONN_MAX_AGECONN_MAX_AGE = 0 (Daphne ASGI)
pre_commit_check.py · ruff formatPython formateado con ruff format (gemelo CI)
bib_report_check.pyCada archivo código MODIFIED tiene bib_report_change reciente
wiki_front_matter_check.pyPáginas Supercontexto tienen front-matter válido
check_astro_schemas.pySi cambia content.config.ts o src/content/, correr pnpm astro sync

Además del pre-commit, el pre-push corre el gate rápido de tests del área (Regla 18, scripts/ci/pre_push_tests.sh). Y para pushear en Pro se usa el push blindado scripts/ci/safe_push.sh <rama> (pre-check de zombis + push con gate + verificación del SHA remoto por API); el ciclo completo push→CI→merge es delegable al agente crearack:estibador en background.

Si necesitas reinstalar los hooks

cd C:\dev\CreaRack-Pro
bash C:/dev/claude-method/harness/install_hooks.sh

Mantener claude-method al día

El SessionStart ya lo hace solo en cada arranque (auto-sync, ver arriba). Para forzarlo a mano:

powershell -ExecutionPolicy Bypass -File C:/dev/claude-method/harness/claude-method-sync.ps1

Backup de memorias (dual: OneDrive + GitHub)

Tu carpeta ~/.claude/projects/<key>/memory/ NO está en git. Al cierre de sesiones significativas (ritual “Apaga”, paso 8) Claude ejecuta:

powershell -ExecutionPolicy Bypass -File C:/dev/claude-method/harness/claude-backup.ps1 -PushGit

Dos copias durables:

  • OneDrive → .zip con fecha (memoria + settings.json) en tu %CLAUDE_BACKUP_ROOT%\<key>\ (retención 10). Sin OneDrive cae en %USERPROFILE%\claude-backups\.
  • GitHub → memoria en texto versionada en CreaRackSL/claude-backups, carpeta dani/.

Recuperar (PC nuevo o memoria perdida):

git -C C:\dev\claude-backups pull
powershell -ExecutionPolicy Bypass -File C:/dev/claude-method/harness/claude-backup.ps1 -Restore -FromGit -Name dani

Reinicia Claude Code después. (Las env vars CLAUDE_BACKUP_* las setea el setup del onboarding.)

Fitness tests (tests de arquitectura)

docker compose exec web python -m pytest tests/test_architecture_fitness.py -v

Documentación completa: Wiki → IA Tech → Harness Engineering.

Guía maestra del esquema Claude del equipo: claude-method/guides/CREARACKSL_HARNESS_GUIDE.md (creada sesión 32, 27-04-2026). Lectura recomendada — describe las 8 capas del Harness (Reglas, Memorias, Hooks, MCP, Skills, Subagents, Bibliotecario, Routines) en parte coloquial + parte técnica.


Routines (agentes programados en la nube)

Desde sesión 32 (Abril 2026) el ecosistema tiene agentes Claude programados que corren en la infraestructura de Anthropic, no en tu PC. Consumen API (no Plan Max). Coste total ecosistema: <$10/mes.

RoutineFrecuenciaEstadoAcción
CreaRackSL · Mantenimiento SemanalLunes 10:00 Madrid🔴 auto-disabled desde 18-05-2026 (auto_disabled_repo_access, verificado 04-08-2026) — decisión de Edu pendienteTriage releases upstream, CVEs, items waiting state, issues > 7d. Envío Resend directo a logcrearack@esfericlabs.com (grupo Zoho s69 · lo lee Edu) vía tool MCP send_maintenance_email + commit reporte en workspace/public/supercontext/reports/maintenance--YYYY-MM-DD.md.
bib-reindex watchdog daily (s50)Diario 09:00 Madrid🔴 auto-disabled desde 28-05-2026 — bib-reindex Pro sin vigilancia; decisión pendienteVigila el cron Linux de bib-reindex (los crons viven hoy en el servidor OPS). Si lleva >30 min sin ejecutar → abre GitHub issue con diagnóstico (3 hipótesis típicas + comandos SSH).
STAGE crons validation (one-shot)one-shot 14-05-2026⚪ caducada (run_once_fired 14-05-2026)Verificación puntual de los crons — caduca tras ejecutarse.

Watcher Cluster C: routine ELIMINADA del panel (verificado por API 04-08-2026). Su cometido (fix d2653a1 de asyncssh) está en producción hace tiempo. Cerrado.

El informe semanal está PARADO desde el 18-05-2026 (routine auto-disabled; decisión de Edu pendiente). Cuando estaba activa, cada lunes llegaba el informe ejecutivo vía Resend directo. Si quieres ver el reporte técnico extendido sin esperar al reenvío, está commited en CreaRackSL-workspace/public/supercontext/reports/.

Patrón “watchdog cloud para cron server” (s50)

Nacido tras incidente s50: el cron de bib-reindex en STAGE estuvo parado 10 días silenciosamente por permission denied. Patrón general reusable para otros crons críticos:

[cron 10 min en server] ──► log archivo
                              ↑
                              │
[routine diaria en cloud] ─── lee MCP/HTTP del workspace
                              │
                              ├── si reciente → silencio
                              └── si viejo → gh issue create con diagnóstico

Reproducir el patrón si otro cron se queda silencioso (DR backup, gh-actions-watchdog, stale-check). Mínimo 1 hora de frecuencia por límite de Anthropic.

Gestionar routines: skill /schedule desde Claude Code, o panel https://claude.ai/code/routines.


Design Toolkit (s50 · plugin opcional desde s186)

El staff comparte un toolkit de diseño: agente design-collaborator (model: opus) + 15 skills design-* (production, system, review). Desde s186 vive en el plugin OPCIONAL method-design del repo claude-method (leído en vivo, nada que copiar) y va apagado por defecto desde la dieta del 28-07-2026 (ahorra ~1.7k tokens de listado por sesión). Si no ves las skills design-* en tu listado: /plugin → habilitar method-design (una vez, persistente).

Cuando necesites tocar UI (Rack Editor, Map Editor, signage, dashboard, workspace), Claude lo invocará automáticamente (con el plugin activo) o puedes forzarlo con /method-design:design-<nombre>.

Cuándo se dispara

  • Skills: se auto-disparan cuando lo que pides matchea su descripción (“dame 3 variantes del hero” → design-generate-variations)
  • Agente: lo decide spawneear el Claude principal cuando la tarea es grande (rediseño, audit del frontend entero) — Agent(subagent_type="method-design:design-collaborator")
  • Manual: /method-design:design-polish-pass, /method-design:design-discovery-questions, etc.

Catálogo rápido

CategoríaSkills
Produccióndesign-discovery-questions · design-frontend-aesthetic-direction · design-taste-frontend · design-wireframe · design-make-a-deck · design-make-a-prototype · design-make-tweakable · design-generate-variations
Sistemadesign-system-extract (tokens) · design-component-extract (atoms/molecules/organisms)
Revisióndesign-accessibility-audit (WCAG) · design-ai-slop-check (anti-template) · design-hierarchy-rhythm-review · design-interaction-states-pass · design-polish-pass (umbrella · final gate)

Filosofía

Rechaza explícitamente las defaults genéricas que delatan “AI-template”: gradientes agresivos, emoji decorativo, cards border-radius: 12px; border-left: 4px solid por defecto, Inter/Roboto silentes, #FFF sobre #000 puro. Obliga a comprometerse con paleta + tipografía + densidad + motion.

Origen

Reverse engineering de Claude Design (Anthropic) por Trystan-SA, MIT. Repo upstream: https://github.com/Trystan-SA/claude-design-system-prompt.

Documentación completa

  • Wiki: [[crearack-tech—method—design-toolkit]]
  • Guía técnica: claude-method/guides/DESIGN_TOOLKIT.md

Curator + Lint del Bibliotecario en apply=true

Desde sesión 32 (27-04-2026), los crons diarios del Bibliotecario Curator (05:00 UTC) y Lint (04:30 UTC) corren en modo apply=true por defecto (antes solo reportaban). Esto significa que:

  • Curator decide automáticamente si las páginas wiki en status draft se promueven a active o se borran (basado en criterio Haiku tras 2+ días).
  • Lint marca como stale páginas con last_verified > 60 días y persiste contradicciones detectadas.

Acciones reversibles vía git history. Si algún draft se borra y debías conservarlo, está en el .md del repo (status volvió a archived pero el contenido sigue allí). Para forzar dry-run en una invocación manual: gh workflow run "Bibliotecario-Curator" -f apply=false.


Skills bibliotecario (disponibles en workspace y CreaRack-Pro)

Desde 2026-04-23, las 5 skills CLI del bibliotecario funcionan desde sesiones Claude Code en ambos repos:

SkillUso
/bib-archive-last-answerOverride manual: archivar la última respuesta de bib_ask como concept_page draft
/wiki-review-draftsCurator interactivo: revisar drafts ≥N días y decidir promote/delete/keep
/wiki-promote <slug>Promover una draft a active
/wiki-delete <slug>Archivar una página (fallback a wiki_archive_page)
/wiki-lint-reviewReporte de salud de la wiki + contradicciones abiertas

Invocas diciendo el nombre de la skill en la sesión (Claude reconoce el / y la ejecuta).


Flujo de trabajo diario

Antes de empezar a trabajar

cd C:\dev\CreaRack-Pro
docker compose up -d
claude

El hook SessionStart hace automáticamente cuatro cosas: (1) git pull --rebase origin main, (2) refresca el project_hot_cache.md — Claude entra “caliente” a cada sesión sabiendo commits de los últimos 7 días, actividad 24h, alertas activas, salud del grafo y bypasses recientes, (3) inyecta la hora local + zona horaria al contexto ([Local time] yyyy-MM-dd HH:mm:ss +02:00 (Europe/Madrid)) para que Claude no se desvíe del reloj real cuando hablamos de horas o deadlines (Regla 25, s50), y (4) sincroniza el método (claude-method-sync.ps1: pull + convergencia por hash — ver sección Harness).

Panel en vivo del proyecto

Abre cada mañana https://workspace.crearack.com/biblioteca/pulse — muestra el estado actual del proyecto refrescando cada 60 segundos.

context7 MCP (docs externas frescas)

Desde sesión 28 (Abril 2026) setup-claude-code.ps1 registra automáticamente el MCP context7 (HTTP público, sin token). Da acceso a documentación actualizada de librerías externas — Django, Astro, HTMX, Tailwind, Cloudflare Workers, etc. Útil cuando tu Claude no recuerda una API o cuando hay cambios entre versiones.

Cuándo usarCuándo NO
API/CLI/syntax/config de una lib externaRefactors o lógica de negocio interna
Migración entre versiones (Astro 4→5, Django 5→6)Debugging de nuestro propio código
Setup de una lib que no recuerdasConceptos generales de programación

Verificar registro: claude mcp list (debe mostrar context7: ... ✓ Connected). Tools: mcp__context7__resolve-library-id y mcp__context7__query-docs — Claude las invoca solo cuando aporten algo.

Durante el trabajo

Claude Code gestiona los commits. Antes de cada commit con cambios de código, Claude ejecuta bib_report_change por cada archivo tocado (si se olvida, el hook de la sección Harness Engineering bloquea con instrucciones).

Si cambias templates, JS o CSS

docker compose restart web

Ver logs en tiempo real

docker compose logs -f web

Ejecutar tests

docker compose exec web python -m pytest tests/api/ -v

Coordinación con Edu y Txell

Trabajáis en áreas habituales distintas para minimizar conflictos, pero por Regla 24 (igualdad de accesos del staff) todos podéis tocar cualquier área en cualquier momento si hace falta.

Dani (foco)Edu (foco)Txell (foco)
core/ (auth, usuarios)blueprints/ (mapas)BIZ (legal, marketing, admin)
config/ (settings, BD)racks/ (editor)Workspace docs
Migracionesmonitoring/ (observatory)Soporte cliente
Seguridadsignage/ (CMS)Reports / FinOps
terminal/ (SSH)

Regla básica: antes de tocar un archivo que no es de tu área habitual, avisa por WhatsApp/Slack — pero puedes hacerlo. La división es coordinación, no permisos.

Siempre hacer git pull --rebase origin main antes de empezar a trabajar.


Acceso a Hetzner

Por Regla 24 (igualdad de accesos del staff) los 3 miembros tienen el mismo nivel de acceso. Si alguien está fuera, cualquier otro puede sustituirle en operaciones de infraestructura.

Regla 26 · Agentes y MCP especializados antes que general-purpose (s51, 06-05-2026)

Cuando una tarea tiene herramienta canónica del método, hay que usarla antes de lanzar un subagente genérico. La tabla mínima:

TareaHerramienta canónicaNO usar
Diseño UI / redesign / mockupAgent(subagent_type="method-design:design-collaborator", model="opus") + skills design-* (plugin opcional method-design; si no está activo, /plugin)general-purpose
Crear página wiki Supercontextowiki_create_page (MCP workspace)escribir .md directos en src/content/wiki/
Modificar wiki existente (replace body)wiki_update_content / wiki_update_page (MCP workspace)editar el fichero local a mano
Edit puntual en wiki existenteEdit + bib_report_change—
Promover / archivar draftsskills wiki-promote, wiki-review-drafts, wiki-deletehacerlo a mano
Consultar grafobib_ask, bib_search_semantic, bib_context_query, read_guide (ya en Regla 0)adivinar
Reportar cambio antes de commitbib_report_changesaltarse el hook
Ciclo push→CI→merge en backgroundagentes crearack:vigia (vigilar) / crearack:estibador (despachar)subagente general

Verbalizada s51 (06-05-2026) tras dos casos donde el agente lanzó general-purpose en vez del especializado: (1) rediseño Holo, (2) creación de 8 páginas wiki que se escribieron como .md directos en vez de usar wiki_create_page. El método empaqueta agentes y MCP especializados; ignorarlos pierde la calibración del agente o pasa por filtros 3-tier de Bibliotecario-Ingest innecesariamente.

Acceso vía NetBird

Todo el acceso operativo a infra pasa por NetBird (NetBird Cloud; sustituyó a Tailscale en s85, 2026-05-25). Cuando recibas tu laptop nuevo del proyecto:

  1. Pide a Edu que te invite en NetBird (dashboard → Team → Users → Invite, con tu email)
  2. Si tuvieras Tailscale instalado, desinstálalo antes (comparte el rango 100.64 y entra en conflicto)
  3. Instala el cliente NetBird: netbird.io/download (Windows: winget install netbird)
  4. Abre NetBird → Connect → login SSO con la cuenta de tu email invitado
  5. Test desde PowerShell: ssh root@crearack-prod.netbird.cloud (o por IP si el DNS por nombre aún no resuelve)

Tu laptop entra en el grupo All/users — no en servers (ese es solo para máquinas servidor).

Detalle completo del setup + troubleshooting + DNS: guía claude-method/guides/NETBIRD_SETUP.md.

Servidores productivos

SSH SOLO por NetBird (invariante desde la auditoría de superficie externa: :80/:443 solo-CF + firewalls solo-NetBird — el SSH por IP pública se cerró).

MoteAccesoRol
PROD (crearack-prod)ssh root@crearack-prod (NetBird; si el DNS no resuelve, IP NetBird 100.96.156.31)App CreaRack en Dokploy
STAGE (crearack-staging)ssh root@crearack-staging (NetBird)DR backups + panel Dokploy + staging
OPS (crearack-ops)ssh root@crearack-ops (NetBird, IP 100.96.245.233)Runners CI self-hosted + TODOS los crons del ecosistema
# PROD — operación habitual
ssh root@crearack-prod
ssh root@crearack-prod "docker ps"
ssh root@crearack-prod "docker logs crearack-pro-zcmvsl-web-1 --tail 50"
ssh root@crearack-prod "docker restart crearack-pro-zcmvsl-web-1"

# STAGE — DR + staging
ssh root@crearack-staging "docker ps"

# Servicios internos accesibles directo desde tu laptop NetBird (sin docker exec ni SSH tunneling):
curl http://crearack-prod:8428/api/v1/query?query=up                # VictoriaMetrics
psql postgres://USER:PASS@crearack-prod:5432/DBNAME                  # PostgreSQL directo (DBeaver/pgAdmin)
# Browser: http://crearack-prod:3000 (Dokploy panel)

Contenedores PROD (crearack-pro-zcmvsl-*):

ContenedorServicio
crearack-pro-zcmvsl-web-1Django (Daphne ASGI)
crearack-pro-zcmvsl-worker-1Huey task worker
crearack-pro-zcmvsl-cache-1Valkey
crearack-pro-zcmvsl-db-1PostgreSQL
crearack-pro-zcmvsl-pgbouncer-1pgbouncer — contenedor presente pero NO usado por la app (la web conecta directa a db; ver decision--20260315--postgres-18-pgbouncer)
crearack-pro-zcmvsl-victoriametrics-1VictoriaMetrics

Server EPYC self-host LLM dado de baja en s53: tras migrar Help a AI Studio paid, el pve-epyc-02 quedó sin uso y fue cancelado en Hetzner Robot tras wipe NIST SP 800-88. Toda la inferencia LLM (Auto-Plan, Help, CNS/ITSM) corre ahora en Google AI Studio Paid Tier.


Arquitectura y herramientas nuevas

SaaS Roadmap

La documentacion del roadmap SaaS esta en:

  • Documentation/architecture/task.md — tareas activas y backlog
  • Documentation/architecture/SAAS_METRICS_ARCHITECTURE.md — metricas VictoriaMetrics + Valkey
  • docs/technical/SAAS_ROADMAP.md (workspace) — vision de producto y fases

Middleware nuevo (multi-tenancy)

El stack incluye middleware especializado para SaaS:

MiddlewareArchivoProposito
Rate Limit per Tenantcore/middleware/rate_limit.pyLimita requests por organizacion (evita abuso de un tenant)
Tenant Metricscore/middleware/tenant_metrics.pyRegistra metricas de uso por tenant (requests, latencia)
Payload Budgetcore/middleware/payload_budget.pyLimita tamano de request/response body por plan

Domain Events

Sistema de eventos de dominio en core/events.py — permite desacoplar acciones entre modulos:

  • Publicar eventos (event_bus.publish("device.created", payload))
  • Suscribir handlers (@event_bus.subscribe("device.created"))
  • Usado internamente por monitoring, CNS e ITSM

Management commands del workspace

ComandoProposito
python manage.py perf_reviewGenera informe de rendimiento con datos reales del sistema
python manage.py finops_reportGenera informe de costes mensuales (Hetzner, APIs, etc.)

Los informes se visualizan en workspace.crearack.com/reports con toggle de tono Coloquial/Tecnico.


Cuándo usar claude.ai web (solo paneles propios)

https://claude.ai web NO es flujo del equipo para programar ni consultar el proyecto — todo eso pasa por Claude Code (CLI). La única razón para abrir claude.ai web es gestionar paneles propios de tu cuenta Anthropic:

  • claude.ai/code/routines → routines scheduled (p.ej. Mantenimiento Semanal).
  • claude.ai/settings/connectors → NO añadir el connector del workspace aquí. El bootstrap (ver [[workspace—onboarding—setup-equipo-nuevo]]) ya registró el MCP via .mcp.json local con los 3 headers correctos (Bearer + CF-Access-Client-Id + CF-Access-Client-Secret). El connector web usa OAuth y no soporta headers custom — rompería el MCP.
  • claude.ai/settings → ajustes de cuenta personal (perfil, billing).

Para el trabajo del día a día (código, wiki, consultas al grafo, etc.) siempre Claude Code CLI.

Mantener el workspace local actualizado:

cd C:\dev\CreaRackSL-workspace
git pull --rebase origin main

Referencia rápida

ComandoPropósito
docker compose up -dArrancar servicios
docker compose downParar servicios
docker compose restart webReiniciar tras cambios
docker compose logs -f webVer logs
docker compose exec web python manage.py shellShell Django
docker compose exec web python manage.py makemigrationsCrear migraciones
docker compose exec web python manage.py migrateAplicar migraciones
docker compose exec web python -m pytest tests/api/ -vTests
git pull --rebase origin mainActualizar código
claudeIniciar Claude Code CLI
URLPropósito
http://localhost:8000App principal
http://localhost:8000/adminAdmin Django
http://localhost:8000/api/docsDocumentación API
http://localhost:8000/healthHealth check
http://localhost:8000/metricsMétricas Prometheus

Problemas frecuentes

Los problemas de instalación (Docker no arranca, WSL2, puerto 8000 ocupado, etc.) están en la guía única [[workspace—onboarding—setup-equipo-nuevo]] § Problemas frecuentes.

git push pide contraseña cada vez → Configurar credenciales: git config --global credential.helper manager

Claude Code no encuentra el proyecto → Verificar que estás en C:\dev\CreaRack-Pro antes de ejecutar claude


Cualquier duda, pregunta a Edu directamente o abre una sesión de Claude con el perfil DEV.

Cambios recientes (mayo 2026 · sesiones 67-82)

Resumen ejecutivo de las novedades que afectan al flujo diario. (Lo posterior a mayo está en “Qué cambió mientras estabas fuera”, arriba.)

Razón social: Esferic Labs SL (s64, 14-05-2026)

CreaRack pasa a ser marca comercial. La razón social legal es Esferic Labs SL (mismo CIF, sin disolución). Implicaciones:

  • Legal/facturación/contratos/banca → “Esferic Labs SL”.
  • Interno técnico (GitHub, servers, paths C:\dev\CreaRack-Pro, env vars, wikis, dominios) sigue con “CreaRack”/“CreaRackSL”. NO hacer sweeps masivos — el rename solo afecta a la capa legal/comercial.

Integración Zoho ↔ Workspace (s67-s68, 16-17 mayo)

El workspace integra Zoho Calendar + Mail per-user:

  • Tasks D1 sigue siendo Single Source of Truth — KanbanMini intacto.
  • Zoho = canales de acción explícita desde TaskModal: + Crear evento Calendar · + Vincular email existente · + Nuevo email.
  • Auto-eventos de ciclo de vida: crear/cerrar/reabrir/borrar tarea sincroniza eventos all-day en cada calendar implicado.
  • Per-user OAuth: cuando entres en /settings/integrations/zoho te tocará autorizar tu propia cuenta Zoho personal de esfericlabs.com.

Runbook operativo: [[runbook—zoho-integration-end-to-end]]. ADR vigente: [[decision—20260517—integracion-zoho-calendar-mail-pivot]].

8 grupos de email Zoho (s69, 18-05-2026)

Emails granulares por función + acción. Routing de notificaciones externas (GitHub, CF, Hetzner, Anthropic, Resend…):

GrupoFunciónAcceso
infra@esfericlabs.comAlertas servers/CF/HetznerEdu + tú (Dani)
dev-platform@esfericlabs.comGitHub/CF PagesEdu + tú
security@esfericlabs.comAuditorías + CVEsEdu + tú
dev-billing@esfericlabs.comCostes infra (Hetzner, Anthropic, Google AI)Edu + tú
factu@esfericlabs.comFacturación a clientesSolo Txell
legal@esfericlabs.comContratos, RGPDSolo Txell
logworkspace@esfericlabs.comLogs operativos del workspaceEdu
logcrearack@esfericlabs.comLogs operativos de CreaRack-ProEdu

Tú recibes notificaciones de los 4 primeros — son los que te tocan como dev. Detalle coloquial: [[workspace—guias—emails-equipo]]. Arquitectura técnica de routing: [[crearack-tech—admin—email-routing-architecture]].

Oráculo de EL (s72-s73, 19 mayo)

Asistente conversacional integrado en la caja de búsqueda del header de workspace.crearack.com. Detección automática:

  • Queries cortas → Fuse fuzzy local (búsqueda en menús/páginas).
  • Preguntas naturales (“¿cómo está organizado el Bibliotecario?”, “¿qué hace el cron drift-check?”) → chat con Gemma 4 sobre el grafo Bibliotecario (corpus: 6 wikis + 49 docs claude-method + código TypeScript del workspace + código Python de CreaRack-Pro).

Chat multi-turno efímero (sin persistencia, cap 12 turnos servidor). Threshold relevance < 0.4 corta antes de llamar al modelo (responde “no tengo info suficiente”). Sources clicables — wikis abren internamente, claude-method va a GitHub web. Detalle: [[feature—workspace—oraculo-de-el]].

Migración GitHub User → Organization (s74, 19-20 mayo)

Los 3 repos ahora viven en la Organization CreaRackSL (antes en el User personal CreaRackSL).

Para ti (dfuentes-esfericlabs):

  1. Recibirás email “Invitation to join CreaRackSL” en dfuentes@esfericlabs.com.
  2. Acepta desde https://github.com/orgs/CreaRackSL/invitation (logueada con tu cuenta dfuentes-esfericlabs).
  3. Una vez aceptada, eres Owner del Org → mismo nivel de acceso que Edu y Txell. Igualdad de accesos del staff (Regla 24/15).
  4. Evita el selector multi-cuenta de GCM en tu primer push: fija tu usuario por defecto para github.com con
    git config --global credential.https://github.com.username dfuentes-esfericlabs
    Así Git Credential Manager no te pregunta qué cuenta usar en cada push/pull.

URLs de los repos sin cambios (GitHub mantiene redirects desde el username antiguo). Branch protections en main activas: force-push y deletions blocked. CreaRack-Pro además exige status checks (Backend · Frontend · Docker · Security) antes de merge PR. Tú como Owner puedes saltarte push directo a main en emergencias (enforce_admins: false), pero el patrón normal es rama + PR + merge squash manual al verde (Regla 20).


Véase también

  • [[workspace—onboarding—setup-equipo-nuevo]] — guía única de instalación desde cero
  • [[workspace—onboarding—onboarding-edu]] — onboarding Edu
  • [[workspace—onboarding—onboarding-txell]] — onboarding Txell
  • [[workspace—perfiles—profile-dev]] — perfil dev
  • [[workspace—guias—team-processes]] — procesos de equipo
  • [[workspace—guias—workspace-user-guide]] — guía de usuario
  • [[workspace-tech—tecnico—ai-workflow]] — AI workflow
  • [[runbook—zoho-integration-end-to-end]] — runbook Zoho operativo
  • [[workspace—guias—emails-equipo]] — guía emails coloquial
  • [[feature—workspace—oraculo-de-el]] — Oráculo de EL