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.

Monta tu editorautoalojado · markdown y mdx · sin asientos por editor
editor.tuempresa.com/editor/manual

manual · 41 archivos

guias/
publicar-un-articulo.md
portada.png
notas-de-version/
2026-08.mdx
arrastra archivos aquí

frontmatter

yaml

title

Cómo publicar un artículo

date

2026-08-21

draft

false

tags

guía, editorial

Cómo publicar un artículo

portada.pngpegada · se guarda junto al documento

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 →

01

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

guias/
publicar-un-articulo.md
portada.png
notas-de-version/
2026-08.mdx
arrastra archivos aquí

frontmatter

yaml

title

Cómo publicar un artículo

date

2026-08-21

draft

false

tags

guía, editorial

Cómo publicar un artículo

portada.pngpegada · se guarda junto al documento

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ático

Sin 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.

buscar en el espacio…
git lfs
lfs
portada.png1.2 MB
diagrama.svg38 KB
lfs
demo.mp424 MB
logo-cliente.png94 KB
captura-01.png620 KB
captura-02.png580 KB

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

sqlite
guias/publicar-un-articulo.md3 de 5
notas-de-version/2026-08.mdx7 de 8
politicas/privacidad.md1 de 6

El índice es caché derivada. Los archivos siguen mandando; se reconstruye desde disco.

02

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.

Actualiza los precios de la guía y déjalo listo para revisar.
read_documentguias/precios.md
write_documentguias/precios.md · 4 líneas
get_diff1 archivo modificado
Cambié las tres tarifas y la nota de vigencia. Está en Cambios, sin commit.

equipo del chat

kit

Editorial

skills

copywriting · seo

mcp

linear

modo

infinito
chat privadoUsa una cuenta personal. Nadie más lo abre.

Tu forma de trabajar, escrita una vez

especificación agent skills

Las 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
skillorigenestado
copywritingescrita aquíen el repo
adscoreyhaines31/marketingskillsfijada
analyticscoreyhaines31/marketingskillshay 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.

Notas de versiónRedactar el changelog
2 tools · 1 skill
infinito
InvestigaciónBuscar y resumir fuentes
3 tools · navegador
infinito
MergeResolver un conflicto
git tools · sin skills
normal

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.
## Objetivorevisar las guías de agosto
## Datosvigencia nueva: 2026-09-01
## Temas[precios] tres tarifas cambiadas (turnos 12-31)
## Abiertas[legal] falta el visto bueno (turno 22)

turno 4

~9k tokens enviados

turno 400

~10k tokens enviados

herramientas de recuerdo

chat_outlinerecallread_transcript

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-in

Tus 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/mcp

alcance del token

workspace:manual
oauth 2.1pkcejwt firmadonombre + correo en el token

herramientas expuestas

10
list_filesárbol
read_fileleer
write_fileescribir
delete_fileborrar
move_filemover
get_statuscambios
commitcommit
pushpush
get_historyhistoria
get_diffdiff

Un token de workspace:manual no puede llamar al endpoint de otro espacio. Misma contención y misma atribución que el editor del navegador.

03

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.

screen.webm
camera.webm
grabando 5:36
se sube por trozos de 5 s · una pestaña caída pierde cinco segundos, no una hora

index.md

0:32Capítulo · Crear el documento
2:14Capítulo · Subir la portada
3:05Corte · 3:05 → 3:19
4:48Capítulo · Revisar y liberar

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 render

Una 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 renderiza
Fondo
screen.webm
Cámara
camera.webm · 18%camera.webm · 18%
Título
portada.png
Música
fondo.mp3

No 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.

04

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

Mguias/precios.md
Aguias/portada.png
Dviejo/tarifa-2025.md
liberar

guias/precios.md

+2 −2
## Tarifas vigentes
- Plan base · $1,200 al mes
+ Plan base · $1,450 al mes
- Vigencia: 1 de marzo de 2026
+ Vigencia: 1 de septiembre de 2026

mensaje de commit · borrador de ia

Actualiza tarifas y vigencia de la guía de precioseditado por ana@estudio.mx · Tailscale-User-Login

O 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.

¿Qué cambió en el manual esta semana y quién lo tocó?
get_historymanual/ · últimos 7 días · 6 commits
get_diffguias/precios.md
Ana subió las tarifas el martes y corrigió la vigencia el jueves. Luis movió dos guías a archivo/. Nadie tocó legal.

historial

6
jue 14:02ana
corrige vigencia
mié 09:41luis
mueve 2 guías
mar 17:20ana
actualiza tarifas
mar 11:05ana
portada nueva

No 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

opcional

Una 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
espaciorepositoriocarpetapushmcp
manualsitio-websrc/content/docs
notassitio-websrc/content/changelognono
legalcontratospublico/solo lecturano

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

editor.workspaces.jsonel registro
repos/<nombre>/los clones
ssh/id_ed25519la llave de despliegue
git-credentialstokens https
workspace-indexes/índices sqlite

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

01

Pagas 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

02

Quitas 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

03

Das 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.