Ir al contenido

Comandos

eidos <command> --help imprime lo mismo con ejemplos. Todo comando ligado a una raíz acepta --root <path>; sin él, la raíz se encuentra por su marca .eidos/ desde el directorio de trabajo. Los comandos que leen aceptan --json para una salida estable en snake_case.

Códigos de salida: 0 hecho, 1 la comprobación encontró errores (o un índice está desactualizado bajo --check), 2 el comando no pudo ejecutarse.

Crea una raíz, o trae piezas de un Framework (el marco) a una que ya existe. El plan se muestra siempre antes de escribir nada.

Ventana de terminal
eidos install # asks each answer in a terminal
eidos install @BuildableWorks/software --group identity --product "Care Connect" --yes
eidos install @BuildableWorks/book docs/book --naming "Title Case" --yes
eidos install @BuildableWorks/research --collection investigations --yes # into the root you are in
eidos install acme/[email protected] --path docs/blueprints --role reviewer --yes
eidos install ../other-root --all --plan # print the plan, touch nothing

Una fuente es una de estas:

  • Un paquete del Registro, @owner/name o @owner/name@<version>. Las tres semillas son paquetes; se sirven desde la copia incluida en la CLI cuando las versiones coinciden o con --offline. El Registro →
  • Un owner/repo@<tag> de GitHub o una URL git, con --path <folder> nombrando la raíz dentro.
  • Un repositorio en esta máquina, <path>@<tag>, con --path.
  • Una carpeta, leída tal cual.

Sin fuente, en una terminal, el recorrido lista los paquetes incluidos y los del Registro, cada uno con su descripción; la página del Registro del navegador lista los mismos e incluye desde ellos en la raíz en la que estás.

Opción Significado
--collection <name> Trae una colección: su entrada, variants (variantes), templates (plantillas), agrupación, propiedades acotadas y carpeta. Repetible
--variant <collection.variant> Trae una variant y su template a una colección que la raíz tiene. Repetible
--role <name> Trae un archivo de rol. Repetible
--top-level <title> Trae un documento de nivel superior y su archivo. Repetible
--all Toma todo lo que a la raíz le falta
--plan / --dry-run Imprime el plan y se detiene
--yes Confirma sin preguntar
--on-conflict current|incoming Resuelve todos los conflictos de la misma manera. Un conflicto es un nombre que ambos lados definen de forma distinta
--force Trata cada omisión (un nombre que ambos lados definen igual) como conflicto
--offline Solo paquetes incluidos y carpetas locales; no descarga ni envía nada
--naming <convention> Raíz nueva: kebab-case (por defecto), TitleCase o "Title Case"
--group <name> Raíz nueva: un grupo inicial bajo la colección agrupada. Repetible
--product <name> Raíz nueva: rellena el marcador del README
--no-framing Raíz nueva: deja fuera la colección de encuadre
--strict / --no-strict Raíz nueva: si un aviso hace fallar eidos check, guardado con la raíz
--no-agents Raíz nueva: no escribe el puntero de AGENTS.md
--json La fuente, el plan, cada escritura, omisión y conflicto, y la comprobación

En una raíz que ya existe, cada nombre se convierte a la convención de nombres de la raíz, el documento del Framework se edita conservando sus comentarios, y después se reescribe el índice y se ejecuta eidos check. Una segunda ejecución con los mismos argumentos no escribe nada.

eidos init se mantiene durante una release como alias oculto de install desde una semilla incluida.

Levanta un Blueprint (el plano): el frontmatter a partir de las propiedades que aplican a la colección, el cuerpo del template de la variant con su guía, el nombre de archivo en la convención de nombres, un id permanente.

Ventana de terminal
eidos new specs "Session Management" --group identity --summary "Keeps a signed-in user signed in."
eidos new specs Passkeys --variant micro --set status=Intake --set tags=auth,security
eidos new frames Market --dry-run
Opción Significado
--variant <name> Una de las variants de la colección; por defecto, la predeterminada de la colección
--group <name> La subcarpeta
--id <id> El id permanente, un solo token en cualquier forma; por defecto, uno nuevo de B- y cuatro caracteres, como B-1AC3, único en la raíz
--summary <line> El resumen de una línea, para que el índice lo liste de inmediato
--set key=value Un valor de propiedad al crear; repetible; las listas se separan por comas
--dry-run Imprime el archivo en lugar de escribirlo

Las propiedades requeridas se generan en blanco; una opcional se escribe solo cuando --set o --summary le dan valor. Rechaza un id ocupado o un archivo existente.

Un Blueprint empezado antes de pertenecer a una colección: el archivo que new escribiría, conservado con la CLI hasta que se publica, fuera de todo índice, listado y comprobación.

Ventana de terminal
eidos draft new specs "Session Management" --group identity # .eidos/plugins/eidosmd/drafts/, shared with the root
eidos draft new specs "A rough idea" --private # local/drafts/, private, never committed
eidos drafts # every draft, with the collection each is meant for
eidos drafts --search passkeys # the drafts holding every word
eidos draft move a-rough-idea shared
eidos draft set a-rough-idea --for frames --group ""
eidos draft publish session-management # into its collection under new's rules, then the index
eidos draft discard a-rough-idea

publish necesita el id libre, convierte el nombre a la convención de la raíz y anota un grupo que la colección no declara. El navegador ofrece lo mismo desde el formulario de nuevo Blueprint y la cabecera del lector.

Valida la raíz entera, o los Blueprints nombrados, contra el propio Framework de la raíz.

Ventana de terminal
eidos check
eidos check specs/identity/login.md
eidos check --strict # this run: warnings fail too
eidos check --json

Los errores están mal se miren como se miren: frontmatter que no se puede analizar, un id o title ausente, un id duplicado, una variant que la colección no declara, un enlace a un archivo que no existe, un template que el Framework nombra pero no tiene, una región sin cierre.

Los avisos son huecos que mostrar, nunca rechazar: una propiedad requerida ausente o vacía, un valor fuera de las options de una propiedad, una propiedad que ningún bloque declara, un campo de seguimiento de trabajo, una sección que el template declara pero el cuerpo no tiene, una sección desconocida (solo si la raíz lo pide, abajo), secciones desordenadas (un encabezado que el template no declara se omite), un valor de agrupación que no coincide con su carpeta, un frame (encuadre) que nadie ha escrito, un índice desactualizado, un salto de versión, y cualquier cosa en la raíz que el documento del Framework no declare (o declare y no esté).

Que un aviso haga fallar la comprobación es un ajuste de la raíz (eidos setup --strict on|off, guardado en git para que la CI y todas las máquinas coincidan). --strict y --no-strict lo anulan para una ejecución.

Las reglas de secciones también son de la raíz, cada una un interruptor en el mismo archivo. Un encabezado que el template de la variant no declara (section-unknown) no se informa salvo que la raíz lo active (eidos setup --warn-unknown-sections on): un template es el punto de partida y la guía para un blueprint completo, no una valla, así que los encabezados de más son cosa de quien lo mantiene. Un encabezado declarado que el cuerpo no tiene (section-missing) y los encabezados declarados fuera de orden (section-order) se informan salvo que se desactiven (--warn-missing-sections off, --warn-section-order off).

Reconstruye la clave index dentro de Framework.yaml, una lista por colección, sin tocar nada más del documento.

Ventana de terminal
eidos index
eidos index --check # write nothing; exit 1 if stale

Un Blueprint sin summary se lista con resumen nulo y se nombra en stderr. Nunca se inventa.

Ventana de terminal
eidos framework # version, naming, folders, properties, vocabulary
eidos framework --as yaml # the document, normalized, with guidance as comments
eidos list specs --group identity --where status=Draft
eidos list --search B-5KFM # by its id; every word of a search, in any case
eidos show login # by id, filename, or path
eidos show login --json # properties and sections parsed out

--where key=value compara una propiedad sin distinguir mayúsculas; una propiedad de lista coincide con cualquier elemento. --search <palabras> deja los Blueprints que tienen cada palabra, sin importar mayúsculas ni orden, en el id, el título, el resumen o el valor de una propiedad, lo mismo que encuentra la caja de búsqueda de una tabla en la página; nunca lee el cuerpo. Encuentra un Blueprint así en lugar de buscar en los archivos.

El frontmatter de un Blueprint desde la terminal, para que nadie abra un archivo para cambiar un valor.

Ventana de terminal
eidos property get @login
eidos property set @login status Done
eidos property set @login tags auth,security
eidos property unset @login depends_on

El Blueprint es @<id>, una ruta o un nombre de archivo. Un valor se convierte al tipo declarado de la propiedad. Una propiedad que la tabla no declara para la colección, una que pertenece a una herramienta o un valor fuera de las opciones se rechaza salvo con --force. --dry-run imprime el frontmatter como quedaría.

Ids nuevos y generados para los blueprints, la única forma de cambiar un id.

Ventana de terminal
eidos reid @login # un blueprint, o varios
eidos reid --all # cada blueprint cuyo id no sea ya B- y cuatro caracteres

Cada blueprint recibe un id como B-1AC3, único en la raíz, y cada referencia que un plugin guarda al antiguo lo sigue: el destino de un hilo de comentarios, un nodo de un lienzo, los blueprints de una tarea, los enlaces de un archivo de Assets. Los archivos conservan su nombre, y los enlaces entre blueprints son rutas, así que no se tocan. El plan se imprime primero, como en configure:, con --dry-run, --yes y --json. Un plugin apagado que guarda archivos se nombra en el plan, porque no puede seguir el cambio.

Un blueprint movido a otro grupo de su colección.

Ventana de terminal
eidos move @login billing # el blueprint, como lo nombra show, y un grupo que su colección declara

El archivo pasa a la carpeta del grupo con su nombre y su id intactos, la propiedad de la agrupación toma el grupo donde la colección declara una, y cada enlace de la raíz que apuntaba a la ruta antigua la sigue. El plan se imprime primero, como en configure:, con --dry-run, --yes y --json. Mover el blueprint a… en el ⋮ de un lector ejecuta el mismo plan.

El Framework, editado desde la terminal. Cada cambio imprime un plan (cada entrada, clave, archivo y enlace que toca, y cada valor que desaparecerá) y pregunta.

Sustantivo Operaciones
property add, show, rename, set, remap, remove
collection add, show, rename, remove
folder add, show, rename, set, remove
group add, rename, remove
variant add, rename, set-default, remove
term add, set, remove
doc add, rename, set, remove
role add, show, rename, remove
Ventana de terminal
eidos configure:property add team --type Text --applies-to all --required --meaning "Owning team."
eidos configure:property add tier --type Text --options Core,Extended --meaning "How central the unit is."
eidos configure:property rename status maturity --dry-run
eidos configure:property remap maturity Draft=Nascent Done=Mature --yes
eidos configure:collection rename specs units --unit unit
eidos configure:folder add assets --description "Images the blueprints link to."
eidos configure:folder add exports --owned-by @acme/exports --description "What the exporter writes."
eidos configure:group rename specs cli cli-core
eidos configure:variant add specs api --from micro
eidos configure:doc rename "Design Principles" Principles
eidos configure:role rename developer engineer
Interruptor Significado
--dry-run Imprime el plan y se detiene
--yes Procede sin preguntar
--force Procede donde desaparecerán valores o archivos, o a través de un conflicto que el plan nombra
--preserve En una eliminación: deja los archivos o claves en disco para que check los informe como no declarados

Un renombrado llega a todos los sitios donde aparece el nombre: el frontmatter de cada Blueprint, cada enlace de la raíz, me.md, los usuarios y los ajustes de esta CLI. Un movimiento es un git mv donde git está activo. Estrechar las options de una propiedad nombra cada Blueprint con un valor fuera de la nueva lista y necesita --force. Tras cualquier cambio se reescribe el índice y se ejecuta check. Sin terminal y sin interruptor, un comando sale con 2 nombrando el interruptor, para que un agente lo aprenda del error.

Lleva una raíz al estándar que lleva esta CLI, mecánicamente.

Ventana de terminal
eidos migrate --dry-run
eidos migrate

Renombra lo que cambió entre versiones, reescribe el bloque properties.core del estándar, fija eidos_version e informa de lo que solo el dueño puede decidir (una carpeta o archivo en la raíz que nada declara). Una raíz ya al día se deja en paz. Versionado →

Los ajustes propios de la CLI para una raíz, ninguno del estándar: el producto que define la raíz, qué plugins están activos, si un aviso hace fallar check, las personas que trabajan en la raíz y como quién actúa esta máquina.

Ventana de terminal
eidos setup # a menu of the plugins, then the questions, in a terminal
eidos setup --product "Care Connect" # what the Home and the desktop app call the root; "" goes back to the repository's name
eidos setup --enable backlog --disable terminal --strict on --add-user "Ada Lovelace" --alias ada --role developer --email [email protected] --as ada
eidos setup --warn-unknown-sections on --warn-section-order off # which section rules warn

Escribe .eidos/plugins/eidosmd/settings.yaml (compartido con la raíz) y local.yaml (tuyo, ignorado por git).

Ventana de terminal
eidos plugin # every plugin: title, version, on or off, where its switch is written
eidos plugin enable backlog # plugins.backlog: true in settings.yaml; a plugin that keeps a root folder declares it
eidos plugin disable terminal --me # private, in local.yaml
eidos plugin set plato agent codex # one declared setting, to the file its scope names (a me setting in local.yaml); --unset for the default
eidos instructions backlog # a plugin's own guide, while it is on

Desactivado, un plugin no registra nada; su carpeta, ajustes y regiones se quedan para el día en que vuelva. Plugins →

Cada plugin activo monta su comando bajo un encabezado Plugins en eidos --help; eidos <plugin> --help lo imprime con ejemplos.

Ventana de terminal
eidos canvas new "Product Map" # .eidos/plugins/canvas/product-map.yaml (--private for local/); list, show <id> [--page], move <id> shared|private, schema
eidos comments @login # the threads on a blueprint; add <target> <text> [--section] [--item] [--reply] [--as], resolve, delete, project
eidos backlog --status "In Progress" # the tasks; add <title> --for @login [--type], show, set, check <task> <n>, promote, types, sections, export, draft:*
eidos decisions --unconfirmed # the inbox; add <decision> --for @login [--type] [--task] --as <alias>, show, set, confirm, types, statuses, project, remove
eidos assets --for login # the files; show, add <file>, link <path> --to @login, set --title|--name, remove
eidos linter --fix # the markdown files that drifted from the root's rules, settled

Un objetivo para Comments es un Blueprint (@<id>, una ruta, un nombre de archivo), un documento o <host>:<id> (backlog:<task>, canvas:<page>, decisions:<id>). Plugins →, una página por plugin

Ventana de terminal
eidos version # the root's versions, newest first
eidos version record 1.0.0 # a row naming HEAD
eidos version record 1.0.0 --commit a1b2c3d --tag # names that commit and tags it blueprints/1.0.0

Una versión es un punto fijo: un nombre para un commit, para que un equipo pueda leer después la raíz exactamente como estaba (el alcance que un cliente aprobó, contra qué se construyó una release). Git ya guarda cada archivo; la fila le da un nombre al commit. Es el registro de esta CLI, en .eidos/plugins/eidosmd/versions.yaml, escrito solo cuando se pide. El prefijo de la etiqueta es versions.tag_prefix en settings.yaml, blueprints/ por defecto.

Ventana de terminal
eidos views # every saved view: its id, its name, the address that opens it, shared or private
eidos views --json # { views[{ id, name, page, query, scope }] }
eidos views move V-7K2M private # move a view to your local.yaml, or back with shared; its id, filters, and sort kept

Las vistas guardadas en el navegador desde un tablero o una tabla filtrados (Save as view): primero las compartidas, de .eidos/plugins/eidosmd/views.yaml, confirmadas con la raíz, y después las tuyas, de views en local.yaml, nunca confirmadas. Una vista se crea, se renombra y se borra en el navegador, y pasa de compartida a privada o al revés allí o con eidos views move; el comando las lista, para que un agente pueda darle a una persona la dirección de una bajo eidos browser. My work, By status y By type del Backlog son las vistas con las que empieza toda raíz y no se guardan en ninguno de los dos archivos. Vistas guardadas →

Ventana de terminal
eidos browser
eidos browser --port 7000 --no-open

La raíz en una página web local en 127.0.0.1. El navegador →

Ventana de terminal
eidos roles
eidos whoami --role developer --experience "new to this product" --capacity fluent
eidos whoami --clear

whoami escribe el .eidos/me.md privado, ignorado por git. Roles →

Ventana de terminal
eidos users # cada usuario: nombre, @alias, rol, correo y si es un agente
eidos users add "Plato" --agent # añade uno al momento; solo hace falta el nombre
eidos comments add @login "…" --as plato # un comentario firmado por ese usuario, no por ti

Las personas y los agentes que trabajan en la raíz, la misma lista que la página de ajustes Usuarios (users en .eidos/plugins/eidosmd/settings.yaml). add solo pide el nombre: el alias sale del nombre, el rol es opcional y un usuario que ya existe se indica en lugar de añadirse dos veces. Un agente se añade una vez con --agent y luego firma cada comentario como sí mismo con --as <alias> (o EIDOS_USER), nunca como la persona para la que trabaja. Comentarios →

Ventana de terminal
eidos instructions # list the guides
eidos instructions overview # required first read for an agent
eidos agents --write # a pointer in AGENTS.md (or --file CLAUDE.md)
eidos standard # the text of EIDOS.md this CLI carries; --version for the number
eidos seeds # the bundled seeds, their collections and variants

Agentes →