lexguard editor · una puerta segura al contenido
Del cambio pedido al cambio publicado. Sin meter a todo el equipo al código.
Tu equipo escribe desde el navegador, sus agentes trabajan sobre exactamente el mismo contenido, y cada cambio queda con nombre, fecha y motivo. Git y tu pipeline siguen decidiendo qué llega a producción.
manual · 41 archivos
frontmatter
yamltitle
date
draft
tags
Cómo publicar un artículo
La dirección es tuya: dominio propio vía Cloudflare Tunnel, una URL pública de ngrok, o sólo dentro de tu red con Tailscale. Cómo se expone →
cuatro capítulos
Todo lo que hace, en el orden en que lo vas a usar.
Un cambio de contenido recorre siempre las mismas cuatro etapas: alguien lo escribe, alguien o algo ayuda, a veces hay que enseñarlo en video, y al final alguien lo suelta. La página está armada igual.
capítulo 01
Escribir
Un solo idioma para tu equipo y para sus agentes, con la estructura que lo vuelve reutilizable en cualquier lado.
ver →
capítulo 02
Asistir
El agente llega equipado: instrucciones, herramientas reales, memoria y acceso al resto de tu operación.
ver →
capítulo 03
Grabar
Grabas, paras, y ya quedó en el espacio compartido. Nada aterriza en tu computadora.
ver →
capítulo 04
Publicar
Qué cambió y quién lo cambió, sin preguntarle a nadie. Y si prefieres, se lo preguntas al agente.
ver →
escribir
Un solo idioma para tu equipo y para sus agentes.
Se escribe como se lee, y se guarda con la estructura que el contenido necesita. Esa estructura es lo que lo vuelve a prueba de todo: el mismo documento alimenta tu sitio hoy, un boletín mañana y un agente que lo consulte dentro de dos años. No hay un formato para las personas y otro para las máquinas.
El texto lo lee cualquiera. La estructura la entiende todo.
Quien escribe llena un cuadro de texto y un formulario corto —título, fecha, etiquetas, lo que ese contenido necesite—. Ese formulario es lo que después consumen tu sitio, tu buscador, tu boletín y cualquier agente que pregunte por él, sin que nadie lo transcriba a otro lado. Debajo es Markdown y MDX con frontmatter dentro de tu repositorio: el archivo que se guarda es el mismo que ya construye tu web.
manual · 41 archivos
frontmatter
yamltitle
date
draft
tags
Cómo publicar un artículo
Nadie tiene que aprender una herramienta nueva
Se arrastra, se mueve, se renombra y se descarga como en cualquier carpeta. Documentos y medios por igual.
- Una carpeta que aún no existe se crea al mover algo ahí
- Descargar sirve incluso donde no se puede editar
Nunca aparece una terminal
Quien escribe contenido no ve un comando, una rama ni un conflicto. Ve su carpeta, su documento y un botón para soltarlo.
Pegas una imagen y ya quedó donde tiene que estar
git lfs automáticoSin decidir carpeta, sin renombrar, sin preguntar dónde van las imágenes: se guarda junto al documento y queda enlazada con una ruta relativa, así que el documento sigue funcionando en cualquier otro lado. Y el segundo botón busca lo que YA está en el espacio —con miniaturas— para que nadie suba por tercera vez el mismo logo.
Insertar en vez de volver a subir: una sola copia del archivo en el repositorio.
Preguntas que hoy se responden abriendo archivos
Qué sigue en borrador, qué no se toca desde marzo, qué guías dejaron tareas a medias. Cada espacio construye un índice con los metadatos de sus archivos —frontmatter, carpetas y las listas de tareas dentro del Markdown— y responde eso sin abrir un solo documento. Es caché derivada: los archivos siguen mandando y el índice se rehace desde disco cuando quieras.
documentos
412
medios
1,180
tareas
63
listas de tareas indexadas
sqliteEl índice es caché derivada. Los archivos siguen mandando; se reconstruye desde disco.
asistir
El agente llega con todo lo que necesita para ser bueno.
La diferencia entre un agente que sirve y uno que inventa casi nunca está en el modelo: está en lo que tiene a la mano. Aquí ya viene puesto —las instrucciones de tu equipo, herramientas para leer y escribir de verdad, una memoria que no se llena y una puerta al resto de tu operación— y todo eso se declara, se revisa y se quita. No tienes que armar nada.
Trabaja sobre tu contenido, no sobre una copia pegada en un chat
Abre los archivos que existen, escribe en los que debe y ve el resultado como lo verá tu equipo. Con el mismo alcance que una persona: la carpeta del espacio, ni un archivo más. Lo que produce llega a Cambios, nunca directo a producción.
equipo del chat
kit
Editorialskills
copywriting · seomcp
linearmodo
infinitoTu forma de trabajar, escrita una vez
especificación agent skillsLas correcciones que tu equipo repite en cada revisión —el tono, el formato de los títulos, qué nunca se promete— dejan de vivir en la cabeza de una persona. Se escriben como skills que el agente carga sólo cuando vienen al caso, o se instalan desde una fuente pública con el commit fijado. Viven en el repositorio, así que viajan con el contenido y se revisan como cualquier diff.
.lexguard/skills/
agentskills.io| skill | origen | estado |
|---|---|---|
| copywriting | escrita aquí | en el repo |
| ads | coreyhaines31/marketingskills | fijada |
| analytics | coreyhaines31/marketingskills | hay update |
Instalar una skill es un cambio en el árbol de trabajo: aparece en Cambios y se revisa como cualquier diff antes de llegar a nadie.
El equipo listo antes de empezar
Nadie quiere responder las mismas seis preguntas cada vez que abre un chat. Un kit guarda con nombre lo que ese trabajo necesita —sus herramientas, sus skills, sus servidores, si corre como chat infinito— y lo deja todo marcado de una. Un kit no ejecuta nada: es el equipo que llevas al trabajo, y sigue inerte hasta que una persona abre el chat.
Un kit no corre nada. Elegirlo abre el panel de siempre con todo ya marcado, y Crear sigue siendo un clic de una persona.
Una conversación que no se acaba a media tarea
Nada de «este chat llegó a su límite, crea uno nuevo» justo cuando el agente ya entendió el proyecto. En vez de mandarle una transcripción que crece, se le manda una memoria curada y herramientas para buscar en lo que realmente se dijo: el turno 400 cuesta más o menos lo que costó el turno 4. La memoria vive en el repositorio, en markdown, para que cualquiera lea lo que el agente cree recordar.
.lexguard/chats/c-2291.md
8,000 car.turno 4
turno 400
herramientas de recuerdo
Nada se tira: la transcripción completa se guarda igual. La memoria es memoria de trabajo, no almacenamiento.
Lo de una persona no acaba en un chat compartido
Si un chat alcanza un servidor que firma como alguien en particular, el chat deja de ser del equipo: las respuestas que trajo ya son datos de esa cuenta.
Puede navegar, y sólo hacia afuera
Abre un navegador real y sólo direcciones públicas. Loopback, redes privadas y el endpoint de metadatos de la nube están cerrados salvo que tú los abras.
Y lo conectas con el resto de tu operación
opt-inTus tickets, tu CRM, tu base de conocimiento: si hablan MCP, el agente los alcanza desde aquí. Y al revés — cada espacio puede exponer su propio endpoint para que Claude Code, OpenCode o el agente que ya usas lean y escriban a través del editor, con OAuth 2.1 y PKCE, un token que sirve para un solo espacio, y el nombre y correo dentro del token para que cada escritura quede atribuida.
endpoint
POST /editor/api/manual/mcpalcance del token
workspace:manualherramientas expuestas
10Un token de workspace:manual no puede llamar al endpoint de otro espacio. Misma contención y misma atribución que el editor del navegador.
grabar
Le das a grabar, le das a parar, y ya quedó donde va.
Grabas la pantalla y la cámara desde el navegador, y no se guarda en tu computadora: se guarda en el espacio compartido que tu equipo ya usa. No hay archivo que subir después, ni carpeta de descargas que revisar, ni un video que se quedó en la laptop de alguien que ya no está. Al parar, lo que queda no es un archivo: es un tutorial que se puede leer, corregir y traducir.
Nada aterriza en tu computadora
Se sube mientras grabas y llega al espacio como cualquier otro cambio. Pantalla y cámara van como dos archivos separados —nunca un compuesto, porque el resultado se edita después— con el micrófono mezclado en la pantalla, así que quitar la cámara sigue dejando una grabación narrada. Y como una grabación contiene lo que hubiera en la pantalla, nada se publica solo: llega a Cambios para que alguien lo mire antes.
index.md
Sale un documento markdown con capítulos que enlazan al minuto exacto (./screen.webm#t=32) y dos videos. Nada se commitea solo: llega a Cambios como cualquier edición.
Una pestaña que se cae no te cuesta la mañana
Se sube en trozos de cinco segundos, fuera del árbol de trabajo. Lo que se pierde son cinco segundos, no media hora.
Te equivocas, lo marcas, sigues hablando
Marcas dónde empieza el error y dónde retomas, y sigues. Queda anotado como un tramo a quitar — nunca se borra video en silencio.
Y si hay que editarlo, la edición se describe antes de ejecutarse
un boceto, no un renderUna carpeta .video dice qué se ve y desde cuándo, qué está insertado y dónde, qué se oye y qué tramos se van — con la precisión suficiente para que una persona, o un renderizador más adelante, lo ejecute. No hay capa de programa ni de audio: un item que no dice nada de sí mismo llena el cuadro y uno con un ancho chico es un recuadro. No renderiza nada y no modifica ningún archivo.
como-publicar.video
nada se renderizaNo hay capa de programa, de PiP ni de audio: un item que no dice nada de sí mismo llena el cuadro, y uno con un ancho chico es un recuadro. Ningún archivo se modifica.
publicar
Qué cambió y quién lo cambió. Sin preguntarle a nadie.
Cada cambio queda con nombre, fecha y motivo, y se puede leer entero. Tu equipo lo ve en un panel antes de soltarlo; tú lo ves en el historial cuando quieras; y si prefieres preguntar en vez de leer, el agente ve exactamente lo mismo — con el mismo detalle, porque lee la misma historia. Nada se publica sin que alguien lo suelte, y las reglas que ya tienes siguen siendo la última puerta.
Ver el cambio antes de que exista
Una edición, una imagen subida, una skill instalada, una grabación entera: todo aparece primero como cambio pendiente y se revisa en un solo panel, línea por línea. Soltarlo es un clic explícito de una persona — nunca un efecto secundario de haber escrito algo.
cambios · 3
guias/precios.md
+2 −2mensaje de commit · borrador de ia
Actualiza tarifas y vigencia de la guía de precioseditado por ana@estudio.mx · Tailscale-User-LoginO se lo preguntas al agente, y lo sabe en detalle
«¿Qué cambió en el manual esta semana y quién lo tocó?» El agente no consulta un resumen que alguien tiene que mantener al día: lee el mismo historial que lees tú, commit por commit y diff por diff. Sirve igual para reconstruir por qué algo quedó como quedó tres meses después, cuando ya nadie se acuerda.
historial
6No es un resumen aparte que alguien tiene que mantener: es el mismo historial que ves tú, leído con las mismas herramientas.
Nadie tiene que acordarse de quién fue
La identidad la pone tu proxy —Tailscale, oauth2-proxy, Cloudflare Access— y queda en el commit. Lo mismo por MCP: el token lleva quién es.
Y el motivo se escribe solo
opcionalUna variable con el endpoint, el modelo y la credencial redacta el mensaje del commit. Cualquier proveedor compatible con OpenAI, incluido uno local. Sin ponerla, la función no existe.
Cada quien ve sólo la parte que le toca
Un espacio de trabajo es una ventana a una carpeta de un repositorio, con sus propios permisos de escritura, de push y de MCP. Varios espacios pueden apuntar al mismo repositorio con carpetas distintas y ninguno ve al otro — legal no ve el blog, el blog no ve contratos. El navegador nunca aprende dónde vive el repositorio en el disco.
editor.workspaces.json
en caliente| espacio | repositorio | carpeta | push | mcp |
|---|---|---|---|---|
| manual | sitio-web | src/content/docs | sí | sí |
| notas | sitio-web | src/content/changelog | no | no |
| legal | contratos | publico/ | solo lectura | no |
El navegador sólo conoce el slug, la etiqueta y rutas relativas a esa carpeta. Nunca dónde vive el repositorio en el disco.
Corre donde tú digas, y se apaga sin dejar rastro
Un contenedor y un volumen, sin una sola variable de entorno obligatoria. Todo lo que este despliegue sabe —el registro de espacios, los clones, la llave de despliegue, los tokens, los índices— vive en un solo directorio, así que el contenedor es desechable y la configuración no. En /config clonas repositorios, generas la llave y defines espacios sin reiniciar nada. Y no se cobra por persona editora.
docker
docker run -d \ -p 4321:4321 \ -v lexguard-config:/config \ -e EDITOR_CONFIG_PASSWORD=… \ ghcr.io/…/lexguard-editor:latest
/config · el volumen
Ninguna variable es obligatoria. El contenedor es desechable; lo que le dijiste, no. Nada se cobra por persona editora.
tres caminos
De pagar y esperar, a publicar con límites claros.
No es una lista de funcionalidades. Es la evolución de una misma decisión: cuánto tiempo esperas, cuánto pagas y qué parte del sitio expones para cambiar contenido.
01 · cms de terceros
01Pagas para sacar el contenido de la fila de desarrollo.
tiempo
publicación rápida
una vez que el CMS y su modelo de contenido están configurados
costo
suscripción mensual
normalmente por equipo o persona editora
Menos riesgo para el código, pero más dependencia del proveedor y de sus licencias.
02 · github directo
02Quitas la espera dando acceso al repositorio.
tiempo
casi inmediato
la persona puede editar y hacer push sin esperar otra fila
costo
sin otro CMS
pero con un costo oculto: errores, soporte y acceso amplio
Más velocidad, pero quien escribe contenido también puede ver o alterar partes ajenas al contenido.
03 · lexguard editor
03Das acceso sólo a la parte que deben publicar.
tiempo
corto y controlado
escribir o usar IA → ver diff → liberar con la regla que ya usas
costo
sin asiento por editor
autoalojado; tu infraestructura, Git e IA opcional siguen siendo tuyos
El alcance reduce la exposición: carpetas específicas, agentes autorizados y Git/CI como puerta final.
menos espera, mismo control
La IA acorta el trabajo. No salta las decisiones.
El agente integrado puede orientar y proponer. También puedes conservar tu proceso con IA externa. El resultado pasa por el mismo espacio delimitado, diff y pipeline.
persona o ia
Propone el contenido
lexguard editor
Limita el alcance y muestra el cambio
git + ci
Revisión humana o despliegue automático si el build pasa
preguntas frecuentes
Todo lo que cambia, queda explicado.
¿Es otro CMS con base de datos?
No. El contenido permanece como Markdown/MDX y frontmatter en Git. LexGuard Editor es una interfaz web sobre las carpetas de contenido que tú delimitas.
¿Puede el equipo romper el sitio?
El espacio se limita a las carpetas permitidas y el editor muestra diffs antes de guardar. Para una protección adicional, conserva ramas protegidas, revisiones y CI en tu proveedor Git.
¿El agente publica solo?
No. Puede ayudar a localizar contenido y proponer cambios, pero las acciones de escritura o Git que configuraste como sensibles requieren aprobación humana.
¿Hace falta configurar algo antes de levantarlo?
Ninguna variable de entorno es obligatoria. El contenedor arranca sin espacios de trabajo y te manda a /config, donde clonas repositorios, generas la llave de despliegue y defines los espacios. Nada requiere reinicio: el registro se vuelve a leer conforme cambia.
¿Cómo se cobra?
No hay asiento por persona editora. Es un contenedor que corre en tu infraestructura con un volumen para su configuración; el costo es el de esa máquina.
¿Qué modelo de IA usa?
El que tú conectes. Los mensajes de commit con IA aceptan cualquier endpoint compatible con OpenAI —incluido un modelo local— por una sola variable, y dejarla sin poner apaga la función. Las skills siguen la especificación Agent Skills, así que las mismas instrucciones sirven aquí y en Claude Code, OpenCode o Cursor.
¿Quién puede entrar?
El editor toma la identidad de tu proxy (Tailscale, oauth2-proxy, Cloudflare Access) y la usa para atribuir commits, nunca para autenticar. La autenticación de verdad va delante del contenedor: es la misma decisión que ya tomaste para el resto de tus herramientas internas.
Dale al equipo acceso al contenido. No acceso a todo el sitio.
Monta LexGuard Editor desde Sitios y transforma el repositorio que ya construye tu web en un flujo de publicación delimitado y revisable.