鍛冶 Yujin Forge

Funcionalidad total -- inventario exhaustivo

CLI + chat panel + voz + NAC-3 + lectura de specs + vault + multi-provider routing.
Manual operativo, no marketing. Última actualización: 2026-06-06 (alpha.59z.156).

Tabla de contenidos

  1. Qué es Forge en una frase
  2. Arquitectura de alto nivel
  3. CLI -- los 56 subcomandos
  4. Chat panel -- 3 modos UI
  5. NAC-3 framework
  6. Inventario de verbos internos NAC-3
  7. Voz -- 10 idiomas, 3 providers
  8. Reader -- 10 formatos de documento
  9. Spec ingest + extract + plan + scaffold
  10. Vault BYOK y catálogo de 27 slots
  11. Ship + deploy + publish
  12. Brain tier routing (eco / frontier)
  13. Proveedores LLM soportados
  14. Workflow + doctrines + SQ
  15. i18n 10 idiomas
  16. QA harness (brain matrix + scenario DSL)
  17. MCP bridge
  18. Licencias + planes
  19. Las 17 pruebas a las que sometimos a Forge

Qué es Forge en una frase

Yujin Forge es un IDE en forma de chat panel + CLI que toma una especificación (texto, voz, PDF, DOCX, XLSX) y produce código real -- backend, frontend y mobile-- con NAC-3 baked in, lectura de docs multi-formato, 10 idiomas, y una doctrina de calidad estricta (SQ) que el modelo aplica turno a turno. Forge no es un "generador de código" -- es un compañero de desarrollo que respeta tu workflow y se integra a tu repo existente o arranca uno nuevo.

Arquitectura de alto nivel

Forge tiene 4 superficies que comparten un mismo backend:

SuperficieComandos / endpointsPropósito
CLI (yf)56 subcomandosOperaciones one-shot: new, ship, validate, license, deploy, doctor, etc.
Chat panelyf chat + browser UI en 127.0.0.1:4847Conversación con Claude / Opus / Sonnet / Haiku / Gemini / DeepSeek / OpenAI / Mistral / Grok / Cohere, con SSE streaming y 3 modos UI (floating / mini / pizarra completa).
VozSTT (Whisper, Google) + TTS (ElevenLabs, Google, Yujin Cloud)Conversación bidireccional en 10 idiomas con chunked pipelined playback.
ReaderTab del panel + verbo yujin.reader.*Abrir y navegar PDF / DOCX / XLSX / EPUB / HTML / MD / RTF / CSV / TXT / source por voz.

El backend (Node 22 + TypeScript estricto) corre como proceso local (no hay servidor remoto) y expone un POST /api/chat que acepta streaming SSE o respuesta JSON. Cada llamada al modelo pasa por un cost router que decide tier eco vs frontier según gate de razonamiento + clasificador Gemini + estado del workflow.

CLI -- los 56 subcomandos

Los principales de yf --help (56 en total). Marcadas como core las que se usan en cada sesión:

ComandoFunciónEstado
yf new <slug>Scaffold de app React Forge desde template.core
yf chatLanza el panel browser con el chat + voz.core
yf migrate <repo>Audita o aplica una migración NAC-3 a un proyecto existente (React o HTML). Modos: --audit, --apply, --ai-silent, --ai-assisted.core
yf testCorre el corpus de tests del proyecto activo.core
yf shipGate de deploy: validate + license + tests + build, emite dist/.core
yf licenseActivar, inspeccionar o revocar licencia (Polar.sh).core
yf doctorChequeo de entorno + vault + voz + reader.core
yf validate [path]Verifica estática del proyecto como Forge app válida.core
yf pilot install <dir>Embebe el cockpit Pilot (chat+voz) en una app NAC-3 decorada.
yf gen-tests <dir>Genera corpus e2e Playwright + Vitest desde el manifest NAC-3.core
yf gen-flow-tests <traces>Genera tests de replay Cypress desde traces de Pilot.
yf figma <file_key>Scaffold de app NAC-3 desde Figma.
yf vaultManage credentials encriptadas (AES-256-GCM): 27 slots.core
yf scenarios:emitEmite Playwright (web) + Maestro (RN) desde *.yujin.yaml.
yf review-screensGalería local de screenshots para review OK / pedir cambio.
yf review-statusCI gate: exit 0 iff todos los screenshots están OK.
yf publishAutonomous publish a npm + Docker (4 registries: Hub, GCR, ECR, ACR).core
yf projectsRegistry local de proyectos Yujin con cross-device sync via GitHub.
yf lessonsServer-side learnings (F103 admin-promoted rules).
yf doctrinesInspecciona / actualiza doctrinas server-side (workflow, yf-commands, gates, nac3-attrs, pizarron, r8-modal, g-doc).
yf tunnelCloudflare Tunnel para exponer el panel local (modo paid).
yf deployCloud deploy autónomo. AWS built-in; otros clouds Forge los construye con vos en el chat.
yf app slack|discord|twilio|stripe|sendgrid|mailgun|linear|notion|figmaWrappers de credenciales de apps con vault.
yf voiceVoz + wake-word config.
yf keysBYOK keys (brain + voice providers).core
yf brainConfigura tier eco vs frontier per-provider.core
yf limitsRuntime limits (max tool rounds, timeouts).
yf qaQA harnesses: brain matrix + scenarios + verbs coverage + brain-matrix-compare.
yf doctrineBrowse doctrinas (docs/doctrine/*.md) que el brain fetchea via yujin.doctrine.discover.
yf manifestQueries del manifest NAC-3 interno (verbos + namespaces).
yf repoInicializa + maneja el repositorio del proyecto activo.

Chat panel -- 3 modos UI

El panel browser tiene tres formas de mostrarse, configurables con /modo o por click en el switch del topbar:

Encima de eso, dos modos de comunicación (SQ 0.8):

Switch runtime via /modo en el chat o yf chat --mode. Persistencia per-proyecto.

Eventos SSE emitidos durante un turno

NAC-3 framework

NAC-3 (Native Agent Contract v3) es el contrato abierto que Yujin estandariza para que agentes IA puedan interactuar con UIs sin caer en clicks DOM ciegos. Cada elemento interactivo lleva tres atributos:

Forge expone capacidades NAC-3 baked in:

Inventario de verbos internos NAC-3

Forge expone su catálogo de acciones a Claude via una sola tool: nac3_invoke({verb_id, params}). El manifest interno se entrega como "stub mode" en el system prompt (verb + policy + label + args_hint). Para verbos complejos, Claude llama yujin.nac3.discover-schemas para obtener el schema completo.

Catálogo por namespace

NamespaceVerbosPropósito
fslist-files, find, read-file, write-project-file, mkdir, move, statFilesystem (write con approval).
gitcommit, push, pull, log, diff, show, status, branch-listOperaciones git (write con approval R8).
githubcreate-repo, clone-repo, branch-statusOperaciones GitHub via gh CLI.
pizarroncreate-tab, open-file, read-tabPizarra: create-tab (ad-hoc), open-file (lectura+edit), read-tab (TTS).
panelopen-settings, switch-mode, send-messageControl del panel UI.
readeropen, list-docs, read-section, next-block, search, bookmark-set, bookmark-jump, recapLectura de docs en 10 formatos.
manualopenAbre el manual HTML del usuario en el idioma activo.
workflowstate, set, run-stepState machine de 18 pasos + 6 fases.
doctrinediscoverFetch on-demand de doctrinas (workflow, gates, yf-commands, nac3-attrs, pizarron, r8-modal, g-doc).
lifecyclerun-app, stop-app, restart-appControl del dev-server del adopter app.
keysstatus, setBYOK keys (booleans only, nunca echo del valor).
auditconsumersSQ 7: scan de consumers que leen una estructura compartida.
consultnac-specRAG sobre docs/SPEC.md.
manifestreadLee el manifest del adopter project.
projectinit, set-rootInicializa o cambia el root del proyecto activo.
shellexecComandos arbitrarios. R6: preferir verbo nativo sobre shell. Approval-required.
jsonquery, parse, stringifyManipulación de JSON.
textdiffDiff textual.
urlparseURL parsing.
envlistListado de env vars relevantes.
npmoutdatedChequeo de dependencias outdated.
mcplist-bridges, show-tools, discover-tools, toggle, invoke-tool, set-credsMCP bridge (F101): controla apps MCP externas desde Forge.
designlist-templates, get-template, list-sumie, get-icon, tokens, overrideYujin Design System: templates + sumi-e icons + token overrides.
agentdelegateDelegación a sub-agent (legacy Director path).

Total: 119 verbos en el manifest interno NAC-3. Todos auditeables, todos con policy (R/A/D/c) explícito. Los destructivos pasan por modal R8.

Voz -- 10 idiomas, 3 providers

HITO 1 ship: voz bidireccional con chunked pipelined playback (~600 ms a primer audio en secciones largas).

Reader -- 10 formatos de documento

Cualquier archivo soportado se puede arrastrar al chat o abrir via yujin.reader.open. Formatos:

txtplanomdmarkdownsourcecódigo (con highlighting)
htmltag-strippedrtfRichTextcsvtabular
epublibrospdfpdfjs-distdocxmammoth
xlsxsheetjsReader internal docs: 10 idiomas (manuales HTML user-facing).

El reader mantiene cursor + bookmarks + recap buffer persistentes per-doc. Recap a demanda llama Claude para resumir las últimas N secciones.

Spec ingest + extract + plan + scaffold

Drop un PDF/DOCX/HTML/MD/etc al chat y Forge ejecuta el pipeline:

  1. Spec ingest: parser del formato (mismo del reader) extrae texto + estructura.
  2. Spec extract: Claude lee y produce {entities, endpoints, components, requirements}.
  3. Spec plan: Claude propone el plan de archivos a generar + fases ordenadas + estimates.
  4. Scaffold approval: chat te muestra el plan. Vos aprobás o pedís cambios.
  5. Scaffold writes: Forge escribe los archivos. Log de rollback siempre persistido.
  6. Rollback: un click revierte el scaffold completo.

Vault BYOK y catálogo de 27 slots

AES-256-GCM at rest con machine fingerprint binding. Atomic writes (0o600). One-shot reveal. Modal vault en el chat panel para configuración guiada.

Categorías de slots (27 total):

Operaciones:

Zero-leak invariant: 20+ patrones de redactor (GitHub, npm, PyPI, Anthropic, OpenAI, AWS, Stripe, SendGrid, Slack, Discord, Twilio, Linear, Notion, Figma, GCP private_key, JWT, URL embedded creds). Aplicado a chat, disk, argv, publish output. GIT_ASKPASS env injection: tokens nunca en argv ni en URLs.

Ship + deploy + publish

Brain tier routing

Cada turno pasa por una cadena de decisión:

  1. Reasoning gate (pre-LLM): heurística sobre el mensaje del usuario. Eco por default; frontier si attachments, código largo, múltiples partes, etc.
  2. Turn classifier (Gemini Flash mini-prompt): clasifica el intent en uno de 18 buckets + confianza.
  3. Workflow phase awareness: si el proyecto está en fase de SQ-defense o phase-ack, escala a frontier.
  4. Cost router: combina los 3 anteriores + budget restante + brain tier persistido + frontier inertia + provider preferido.
  5. Provider call: ejecuta contra el provider elegido. Si --provider claude-code-cli: short-circuit al subprocess claude -p con subscription billing.

Cada decisión se loguea en brain_routing.jsonl y se expone en turn_start via SSE para que el panel pinte el tier badge.

Proveedores LLM soportados

ProviderModelosAuth
AnthropicOpus 4.7, Sonnet 4.6, Haiku 4.5BYOK ANTHROPIC_API_KEY
OpenAIGPT-5 familyBYOK
Google Gemini2.5 Pro / Flash / Flash LiteBYOK
DeepSeekchat / coderBYOK
xAI GrokGrok-3BYOK
Mistrallarge / codestralBYOK
Coherecommand-r-plusBYOK
Yujin Managedrouting dinámico via Cloudflare workerlicense activa
Claude Code CLITu plan Claude Max via subprocess claude -pSubscription Max (no API)

Workflow + doctrines + SQ

Forge guía al usuario por 6 fases / 18 pasos. Estado persistente en yujin.forge.json::workflow_state. Verbos:

Doctrines server-side (F103): el modelo puede pedir yujin.doctrine.discover({slugs:[...]}) on-demand para acceder a:

SQ (Standards of Quality):

i18n 10 idiomas

Catálogos completos en src/i18n/catalogs/{es,en,pt,fr,ja,zh,hi,ar,de,it}.json. Catalog-lint pre-commit refuses ningún commit con strings hardcoded o keys faltantes en cualquier idioma. RTL automático para árabe. Stateless per-request (cookie / query) -- race-safe entre devices.

QA harness

Forge ships un harness de QA que el equipo usó para validar la matriz de comportamiento:

MCP bridge (F101)

Forge puede controlar apps MCP externas (Claude Desktop, IDEs, custom):

Licencias + planes

Las 17 pruebas a las que sometimos a Forge

El 2026-06-06 corrimos una matriz de comportamiento sobre 17 tipos de pedidos: greenfield, bug fix, evolutivo, mobile, refactor, gen tests, code review, doc generation, ambiguo, inseguro, out-of-scope, inconsistente, DB migration, performance, deploy/release. Cada uno con un workspace base preparado (con docs / sin docs / con bug introducido / etc) y un pedido verbatim. Documentado el comportamiento esperado, el comportamiento real de Forge (vía SSE + filesystem diff + token counts) y el gap.

Ver las 17 pruebas con sus reports →

Documento mantenido manualmente. Fuente verificable: github.com/yujinapp/yujin-forge. Última corrida: 2026-06-06.