new-term-radar
신규 AI 용어를 매일 추적, X·Hugging Face·GitHub 등에서 모델·제품·레포 이름을 빠르게 수집
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Producto multi-tenant de Cofundo: un comercial compone un dossier vivo por prospecto (módulos de UI animados, orden, ocultos, precio) y lo comparte como enlace bajo la marca de su empresa (pitch. /d/). Enjoy the Club es el primer tenant.README 전문 보기 ↗
Producto multi-tenant de Cofundo: un comercial compone un dossier vivo por prospecto (módulos de UI animados, orden, ocultos, precio) y lo comparte como enlace bajo la marca de su empresa (pitch.<tenant>/d/<token>). Enjoy the Club es el primer tenant.
docs/SETUP.mdnh-*): docs/BRAND_INTAKE.mddocs/PLAYBOOK.mddocs/EVIDENCE.mddocs/DESIGN_SYSTEM.mddocs/PARTNERS.mddocs/PLAN.mddocs/ADR-0001-stack.mddocs/MODULE_AUTHORING.mddocs/ONBOARDING_TENANT.mdStack: Astro 5 SSR (Vercel o Node/Docker) · Tailwind 3 sobre CSS vars · Zod · Svelte 5 (builder) · Supabase (Postgres + Auth + RLS).
npm install
cp .env.example .env # deja vacías las claves de Supabase → modo DEMO con supabase/seed/fixtures.json
npm run dev # http://localhost:4321
# o con el build de producción: npm run build && npm run start:demo
En un build de producción sin Supabase la app responde 503 (no entra en demo salvo
DEMO_MODE=1).
| URL | Qué demuestra |
|---|---|
| http://localhost:4321/d/demo-sala-x-7Qm2 | Dossier "Sala X" de Enjoy: orden por rank, 1 módulo oculto, per_module con override (250 € + 450 € = 700 €), dos tabs-showcase animando independientes |
| http://retheme.localhost:4321/d/demo-retheme-Hx8v | Mismos módulos con otro tenant → re-skin solo con theme_tokens |
/d/demo-draft-Kp9wQ1, /d/demo-revoked-Zt4c, /d/demo-expired-Bn3r | Gates → 404 idéntico |
| http://retheme.localhost:4321/d/demo-sala-x-7Qm2 | Token válido bajo otro tenant → 404 |
| http://localhost:4321/admin | Consola: en demo eliges usuario (comercial / admin de Enjoy, o comercial de otro tenant → 403) |
localhost se resuelve al tenant DEV_TENANT_SLUG (por defecto enjoy); *.localhost se resuelve por la tabla domain.
En modo demo los cambios hechos en /admin se ven al momento en /d/<token> (BD en memoria; se pierde al reiniciar).
Producción: sigue docs/SETUP.md. En local con la CLI (supabase start aplica migraciones, seed de demo y plantillas de email de supabase/config.toml).
security definer (resolve_tenant, get_public_dossier).@supabase/ssr); cada consulta va con el JWT del usuario → la RLS aplica siempre. La service_role solo se usa para invitar usuarios y en el script de alta.npm run tenant:bootstrap -- tenants/<slug> (docs/ONBOARDING_TENANT.md)./admin| Ruta | |
|---|---|
/admin/login | Login (demo: selector de usuario) |
/admin | Listado: filtros por estado / "solo míos" / búsqueda; alta de dossier (vacío o desde plantilla) |
/admin/dossiers/:id | Builder: datos del prospecto, modo de precio (none/total/per_module), catálogo, reordenar (drag & drop + botones ↑↓), ocultar, precio por módulo, personalizar textos (JSON validado contra el schema), actualizar a la última versión del módulo, publicar/despublicar/archivar/borrar, generar/copiar/revocar enlaces con caducidad, vista previa móvil/tablet/escritorio |
/admin/dossiers/:id/preview | Vista previa autenticada (cualquier estado) |
/admin/api/dossiers/:id | API JSON del builder: GET estado · POST {op} → estado · DELETE |
/admin/catalog (admin) | Módulos y versiones: crear variante, borrador → publicar → archivar, preview, uso por dossiers |
/admin/team (admin) | Invitar por email, cambiar rol, quitar (nunca sin al menos un admin) |
/admin/brand (admin) | Colores, radios, tipografía (fuente propia), logos/favicon/imagen OG (subida a Storage), contacto (WhatsApp…), con vista previa |
/admin/learn | Aprende a vender: formación por módulo (jugadas oficiales, vista previa del módulo, trucos del equipo, votos, proponer mejoras), progreso y novedades |
/admin/learn/sector/:key | Sector: cliente ideal, cómo compran, módulos que encajan y actores (quién decide, paga, puede tumbarlo; cómo abordarles) |
/admin/compose | Preparar mensaje: contexto listo para el Cerebro de Ventas en Claude/ChatGPT («tipo DJ → mensaje») |
/admin/playbook (admin) | Mercado y actores (editor), bandeja de propuestas, jugadas (crear/editar con versión y nota), «qué funciona», exportación con formato del Cerebro |
/admin/dossiers/:id → «Guion de venta» | Guion de la reunión generado del playbook para ese dossier (orden, precio, objeciones); imprimible en |
Arquitectura: el builder (Svelte) solo envía operaciones (src/lib/admin/ops.ts); las reglas viven en un único servicio (src/lib/admin/service.ts) sobre la interfaz AdminDb, con dos implementaciones: memoria (demo) y Supabase con la sesión del usuario. La misma batería de tests de contrato (service.contract.ts) se ejecuta contra ambas.
| Script | |
|---|---|
npm run dev / build / start / start:demo | Desarrollo / build SSR / servidor Node / servidor Node en demo |
npm run tenant:bootstrap -- tenants/<slug> [--dry-run] | Alta/actualización idempotente de un tenant en Supabase (service role) |
npm run check | astro check (tipos) |
npm test | Vitest: unitarias de todo src/ y los contratos contra la base demo (ver docs/DESARROLLO.md) |
npm run db:test | Migración + seed + aserciones de RLS/RPC sobre un Postgres pelado (stub de auth), sin Supabase CLI |
npm run db:it | Contrato del servicio de la consola (dossiers, equipo, catálogo, marca) y script de alta contra Postgres + PostgREST + RLS reales con supabase-js (POSTGREST_BIN=/ruta/postgrest) |
npm run db:seed:build | Regenera supabase/seed.sql desde fixtures.json (CI comprueba que está al día) |
node scripts/smoke-e2e.cjs | Smoke Playwright del enlace público (orden, precios, 404s, tema, multi-instancia) |
node scripts/smoke-admin.cjs | Smoke Playwright de la consola: plan §13 pasos 2–7 por la UI (login, crear, drag & drop, ocultar, precio, publicar, enlace, revocar, RBAC, móvil) |
node scripts/smoke-tenant-admin.cjs | Smoke Playwright de catálogo, equipo y marca (incl. reflejo en el enlace público) |
node scripts/smoke-market.cjs | Smoke Playwright de sectores/actores, Preparar mensaje, cuenta del dossier, guion «Con quién hablas» y seguimiento |
node scripts/smoke-playbook.cjs | Smoke Playwright del playbook: aprender, votar, compartir, proponer, bandeja del líder, guion en el builder |
Los smokes van contra un servidor en modo demo: npm run build && npm run start:demo. Hay uno por flujo en scripts/smoke-*.cjs (todos en CI); arriba solo los primeros. Cómo se prueba, dónde va cada cosa y las reglas de rendimiento: docs/DESARROLLO.md.
src/
middleware.ts Host → tenant, CSRF, sesión de /admin, cabeceras
pages/d/[token].astro Renderer público SSR
pages/admin/ Consola (login, listado, builder, preview, API)
components/admin/Builder.svelte Isla del builder
components/dossier/DossierView.astro Render compartido (público + preview)
lib/admin/ ops (contrato), service (reglas), db-demo / db-supabase, auth
layouts/ThemedShell.astro Inyección de theme_tokens ⊕ theme_override
modules/
registry.ts block_type → { schema, Component }
resolve.ts default_props ⊕ prop_overrides → schema.parse + ctx (precio, prospecto)
runtime.ts mountAll/init(root): JS por instancia
hero-pitch/ tabs-showcase/ pricing-card/ (Component.astro + schema.ts + client.ts)
lib/
theme.ts pricing.ts rank.ts tenant.ts env.ts
data/ (index: repositorio público · supabase.ts · demo.ts · mappers.ts)
components/ (Button, Card, Container, Section, Icon, ItemPrice)
supabase/
migrations/ Esquema + RLS + RPC
seed/fixtures.json Fuente única de datos de ejemplo (demo + seed.sql)
tests/ Stub de Supabase + aserciones RLS
Fase 0 — hecha
var(--…), tokens, átomos, shell temadohero-pitch, tabs-showcase (estrella, multi-instancia probada), pricing-card/d/<token> con gates y 404 neutroFase 1 — consola y builder: hecha
none|total|per_module + overrides, personalización validada, actualizar versión, publicar/despublicar/archivar/borrar, enlaces con caducidad y revocación, vista previa por dispositivoFase 1.5 — listo para producción (salvo cuentas y datos de Enjoy)
/api/healthtenants/enjoy prerrellenado; despliegue Vercel/Docker; guía SETUPPlaybook de ventas — propuesta implementada para revisar (docs/PLAYBOOK.md)
tenant.json; contenido de ejemplo para EnjoyMercado, contexto y seguimiento (docs/PLAYBOOK.md §6–7, docs/FOLLOWUP.md)
Colaboradores — propuesta implementada para revisar (docs/PARTNERS.md)
partner con RLS propia: solo sus dossiers, sus módulos y los sectores de sus cuentas; nunca lee la tarifa (RPC sin precios)Diseño y evidencia — propuesta implementada para revisar (docs/DESIGN_SYSTEM.md, docs/EVIDENCE.md)
lint:copy en CIPendiente — necesita a otra persona
docs/SETUP.mdtenants/enjoy/ (marca, assets, copys, admins) → docs/BRAND_INTAKE.mdnh-* y añadir logo-marquee, testimonials, steps-howitworksPendiente — siguiente iteración
/script/admin/account | Nombre y contraseña (también destino de invitación y recuperación) |
/admin/auth/confirm | Destino de los emails de Auth (token_hash o code) |
/api/health | Estado y diagnóstico de configuración (sin secretos) |