YAGNI
Cuestiona cada feature y abstracción antes de shippear. La escalera de abajo es el filtro.
LEXIS-TWO
Reglas, skills y slash commands portables -- YAGNI, KISS, DRY y SOLID antes de cada línea de código. Flujos multi-agente, una fuente de skills, adaptadores delgados.
Haz benchmarks con tus modelos OpenCode Go, luego publica resultados -- Ver benchmarks
·
OpenCode Go harness
(npm run benchmark:opencode-go).
Lexis-Two trata la simplicidad como método: defaults escépticos, patrones de stack de producción y límites mantenibles -- no minimalismo ingenioso por moda.
Cuestiona cada feature y abstracción antes de shippear. La escalera de abajo es el filtro.
Stdlib, APIs de plataforma y one-liners aburridos ganan a dependencias nuevas.
Un catálogo skills/. Los hosts enrutan comandos -- no bifurcan comportamiento.
Límites claros en módulos y servicios. Sin abstracciones que nadie pidió.
Antes de escribir código, detente en el primer escalón que sostenga.
Dialogo de confirmacion. De examples/nextjs/01-modal-library.
function Modal({ open, onClose, title, children }) {
useEffect(() => {
document.addEventListener("keydown", onEscape);
document.body.style.overflow = "hidden";
return () => { /* cleanup */ };
}, [open]);
return createPortal(
<div className="modal-overlay" onClick={onClose}>
<div role="dialog" onClick={(e) => e.stopPropagation()}>
<h2>{title}</h2>
{children}
</div>
</div>,
document.body,
);
} Portal, overlay, bloqueo de scroll y Escape para un si/no.
// lexis: native <dialog> — backdrop + focus trap built in
<dialog ref={dialogRef}>
<h2>Confirm delete</h2>
<form method="dialog">
<button value="cancel">Cancel</button>
<button value="confirm">Delete</button>
</form>
</dialog> 74 lineas → 24. <dialog> nativo trae focus trap y backdrop.
Adaptadores delgados. Una fuente de skills. skills/ es el núcleo -- los principios viven centralizados, los hosts se mantienen tontos.
| Host | Nivel | Punto de entrada |
|---|---|---|
| OpenCode | Completo | .opencode/plugins/lexis-two.mjs |
| Claude Code | Completo | .claude-plugin/ + hooks/ |
| GitHub Copilot (plugin) | Completo | .github/plugin/plugin.json |
| Gemini CLI | Completo | gemini-extension.json |
| pi | Completo | pi-extension/ |
| Codex | Completo | .codex-plugin/ + AGENTS.md |
| Cursor | Completo | .cursor/rules/ + .cursor/skills/ |
| Windsurf / Cline / Kiro | Reglas | lexis-two.md en la carpeta rules del host |
| Cualquier agente | Reglas | AGENTS.md o skills/*/SKILL.md |
En hosts con adaptadores de comandos: OpenCode, Gemini CLI, pi, Claude Code y GitHub Copilot.
/lexis status Muestra el estado actual del plugin, nivel de intensidad activo y configuración por defecto.
/lexis <lite|full|ultra|off> Cambia el nivel de intensidad de las reglas de pereza inteligente para el agente de IA.
/lexis plan (o /lexis p) Diseña una solución técnica paso a paso aplicando la jerarquía minimalista antes de escribir código.
/lexis review (o /lexis r) Revisa los cambios recientes en git (diff) para detectar sobreingeniería y sugerir simplificaciones.
/lexis audit (o /lexis a) Escanea todo el repositorio en busca de código muerto, dependencias innecesarias o abstracciones prematuras.
/lexis debt (o /lexis d) Cosecha y prioriza todos los comentarios // lexis: del código en un ledger de deuda técnica.
/lexis security (o /lexis s) Realiza una auditoría de seguridad enfocada en vulnerabilidades del stack (Node.js/Next.js/MongoDB).
/lexis doubt Aclara requisitos ambiguos con hasta tres preguntas — sin escribir código.
/lexis incremental (o /lexis inc) Entrega el slice vertical más pequeño primero; difiere el resto.
/lexis debug (o /lexis triage) Repro mínimo, arreglo más pequeño, verificar — sin refactors colaterales.
/lexis source (o /lexis src) Ancla el diseño en código del repo y docs oficiales antes de inventar APIs.
/lexis predict Compara enfoque propuesto vs lazy (LOC, dependencias, mantenimiento).
/lexis scenario Recorre escenarios feliz, borde y fallo antes del diseño.
/lexis help (o /lexis h) Despliega la tarjeta de referencia rápida con todos los comandos y niveles.
/specxis status Monitorea el estado, progreso de tareas y deuda técnica de las especificaciones activas.
/specxis new <slug> Crea una nueva propuesta aplicando el lazy check inicial para validar si la feature realmente debe existir.
/specxis plan <slug> Genera los archivos spec.md (MUST/SHOULD/MAY) y tasks.md (lista de tareas técnicas) a partir de la propuesta.
/specxis implement <slug> Guía al agente para implementar la siguiente tarea pendiente, una por una, de forma controlada.
/specxis review <slug> Evalúa la implementación actual contra los requisitos de la especificación y las reglas de AGENTS.md.
/specxis close <slug> Archiva la especificación completada y consolida sus comentarios // lexis: en el ledger de deuda técnica.
/specxis debt Sincroniza todos los comentarios // lexis: del código de forma portable en .specxis/debt.md.
Un comando para hosts de reglas — o configura plugins manualmente.
Detecta Cursor, Windsurf, Cline, Kiro, OpenCode y AGENTS.md. Se puede re-ejecutar sin riesgo.
# Interactive — from your project directory
npx @draig/lexis-two install
# Non-interactive: Cursor + OpenCode + AGENTS.md
npx @draig/lexis-two install --host cursor,opencode,agents --scope project --yes
# Plugin hosts (setup hints for Claude, Copilot, Gemini, pi)
npx @draig/lexis-two install --host claude,gemini,copilot --yes
# Preview without writing files
npx @draig/lexis-two install --dry-run --yes
# Uninstall Lexis-Two files from the project
npx @draig/lexis-two install --uninstall --host cursor,opencode --scope project --yes # Or let the installer merge opencode.json for you:
npx @draig/lexis-two install --host opencode --scope project --yes
# Manual: add to opencode.json
{
"plugin": ["@draig/lexis-two"]
} git clone https://github.com/nitdraig/lexis-two.git ~/lexis-two
# opencode.json
{
"plugin": ["~/lexis-two/.opencode/plugins/lexis-two.mjs"],
"instructions": ["~/lexis-two/AGENTS.md"]
} # Or use the installer:
npx @draig/lexis-two install --host cursor --scope both --yes
# Manual — project:
cp ~/lexis-two/.cursor/rules/lexis-two.mdc .cursor/rules/lexis-two.mdc
# Manual — global:
cp ~/lexis-two/.cursor/rules/lexis-two.mdc ~/.cursor/rules/lexis-two.mdc git clone https://github.com/nitdraig/lexis-two.git ~/lexis-two
# More hosts: docs/portability.md in the repo
# Default mode: LEXIS_TWO_DEFAULT_MODE=full
# Or ~/.config/lexis-two/config.json → { "defaultMode": "full" } Tres archivos para tocar. No se necesita un nuevo framework.
Reemplaza los shortcuts del stack (Python stdlib, Rust crates, Go stdlib). Ejecuta node scripts/check-rule-copies.js.
Apunta los comandos de auditoría a tus herramientas -- cargo audit, pip-audit, golangci-lint.
Actualiza las descripciones TOML y de OpenCode si cambia el comportamiento de un skill.
Patrones optimizados para los stacks de producción mas comunes.
Next.js, React, Express, Fastify, tipos estrictos
Schemas, índices, agregacion, transacciones
Utility-first, modo oscuro, responsivo
FastAPI, Django, dataclasses, type hints
Relaciones, migraciones, prevención de N+1
Cacheo, sesiones, rate limiting, pub/sub
Repos complementarios -- benchmarks, patrones tempranos y extensiones por host.
baseline vs lexis-two — LOC mediana en 5 tareas de código.
| Modelo | LOC baseline | LOC Lexis-Two | Reducción | Correctas (lexis) |
|---|
Resultados de una corrida OpenCode Go (5 tareas, 3 repeticiones por celda). Dependen del modelo y la tarea — no son claims universales.
Regenerar: npm run benchmark:opencode-go && npm run benchmark:report
Lexis-Two es el paquete portable público -- principios, skills y adaptadores. Lexis-One es orquestación privada. Lexis-Core es futuro.
Lexis-One (private) ──extracts the best──▶ Lexis-Two (public)
│ │
│ personal configuration │ portable rules + skills
│ providers & API keys │ multi-host adapters
└───────────────────────────────────────────┘
│
Lexis-Core (future)
public orchestrator Este proyecto forma parte de Excelso Open, nuestra rama de código abierto enfocada en la comunidad, impulsando tecnología colaborativa y proyectos de impacto social.
Visita excelso.xyz ➔