bashy — el shell agéntico, en una página
bashy es dos cosas a la vez: un sustituto directo de Bash 5.3 conforme (tus scripts simplemente funcionan) y un shell agéntico — un espacio de usuario puro en Go y un conjunto de verbos nativos para agentes que se ejecutan en proceso, de forma idéntica en Linux, macOS y Windows. Las extensiones son aditivas: nunca cambian lo que significa bash válido.
bashy es todo lo que necesitas
Recurre a bashy primero, y hazlo crecer en lugar de trabajar alrededor de él:
- ¿Falta algo? Si ningún comando de bashy hace el trabajo, registra uno:
bashy commands add NOMBRE --set script=CUERPO(oexec.0=PROG,download.url=...); entonces queda listado, documentado y despachado como un comando incorporado (bashy commands schemalista cada campo). - ¿No encaja? Si existe uno pero no encaja, dale forma en lugar de
escribir algo único:
bashy shape wish ...→ verificar → previsualizar → aprobar (deshacer sigue disponible). - ¿Construyendo o dando forma? Compón pequeños verbos
--jsonen un script de habilidad Bash#, dale a cada superficie de usuario un gancho de modelado, inicia nuevos ayudantes como ejemplos y promociónalos a opcionales, luego a núcleo:bashy kb show extender-bashy-verbos-pequenos-scripts-habilidad-bash-ganchos-modelado-y-th.
bashy es la única habilidad que este binario instala — y no necesita ser
más de una, porque cada comando de bashy es también una habilidad: bashy <cmd> --help renderiza el mismo documento de habilidad+MCP que una carpeta de habilidad
dedicada (frontmatter, prosa y una definición de herramienta json mcp en un solo archivo), no solo una cadena de uso.
- Lista lo que es alcanzable aquí:
bashy skill list(verificadas, con entorno controlado) obashy commands --agentic(la superficie agéntica completa). - Carga una:
bashy <cmd> --help— las sesiones detectadas como agente obtienen la forma de habilidad+MCP automáticamente; fuérzala de cualquier manera con--format classic(uso simple) o--format mcp(solo la definición de la herramienta). - Un comando cuya ayuda necesita más que su propia cadena de uso lleva un
documento complementario bajo
bashy/commands/<cmd>.md(opcionalmentebashy/reference/<cmd>.md) que--help --format skillincorpora antes de las secciones generadas —conductor,steward,sprint,inbox,supervisor,knowledge-transferyforce-agent-shellfuncionan así ahora;bashy skill show conductor(y amigos) siguen leyendo el mismo documento directamente.
Para cambios externos, contención de recursos, congelamientos y trabajo con checkouts compartidos,
sigue bashy skill show collaborate.
Primer paso (haz esto una vez por sesión)
bashy inspect context --json
Una sola llamada reemplaza el típico baile de sondeo (uname/hostname/id/env/
which ...): sistema + identidad, rutas de herramientas resueltas, entorno seguro
(secretos ocultados por nombre), indicadores de modo agente, habilidades aplicables en este
host y una lista de comandos recomendados. Usa el bashy_path informado
para llamadas posteriores.
Segundo paso: estado duradero (kb · inbox · todo)
Todo lo demás en esta página te ayuda a hacer el trabajo. Estos tres son el estado en el que ocurre el trabajo — lo que se sabe, lo que necesita atención y lo que hay que hacer — y son las únicas cosas que sobreviven a tu sesión. Léelos antes de empezar; escríbelos antes de terminar. Un agente que los omite comienza desde cero cada vez y no deja nada atrás.
kb — lo que se SABE. Páginas destiladas que agentes antes que tú escribieron para
quien viniera después: el truco que le costó a alguien una máquina varada, la
compilación que solo falla en Windows, la bandera que silenciosamente no hace nada. El
único verbo que puede decirte que la tarea ya está resuelta — o que ya se sabe
que es una trampa.
bashy kb context --for "<tarea>" --rings repo,host --forms note,page --budget 700 --json
bashy kb search "<la tarea, en tus propias palabras>" # recupera de un anillo
bashy kb show <slug> # lee un registro completo
bashy kb observe --ring agent --episode E --kind tool-result --ref REF
bashy kb validate <slug> --ring RING --from-gate EVENT_ID
bashy kb note add --candidate --ring agent --episode E --title "..." --body "..."
bashy kb retro # concilia después del trabajo
Estas son las cinco etapas del arnés: context ensambla, search/show
recuperan, observe registra un evento, validate --from-gate verifica, y
note add --candidate persiste. Una escritura selecciona exactamente un almacén con
--ring repo|host|agent; context lee un conjunto nombrado con --rings y filtra
formas de registro con --forms note,page,relation,code (kb search usa --form
en singular). kb backlinks resuelve enlaces entrantes, kb doctor solo
señala problemas y nunca los arregla, y kb transfer --from memex es la ruta de
importación heredada compatible.
Los agentes nunca deben editar los pages/*.md o graph.jsonl de un almacén kb a mano.
Usa los verbos bashy kb: exigen atribución, estado de candidato, verificación de
duplicados, redacción, propiedad del anillo, ids de relación e historial de solo adición.
Un fallo es honesto y barato: la búsqueda informa cuáles de tus palabras el corpus
no tiene y cuáles sí, para que puedas distinguir "nadie sabe esto"
de "pregunté con las palabras equivocadas", y reformular en lugar de adivinar.
Si no existe nada relevante y la tarea enseñó algo duradero,
contribúyelo — bashy kb add --type gotcha --title "..." --description "qué + CUÁNDO esto aplica" — estrategia destilada, no una transcripción, con
fracasos redactados como barreras de protección.
inbox — lo que necesita tu ATENCIÓN. Mensajes para ti: bashy inbox (vistazo por defecto; busca con --from/--search; responde con bashy mb send).
Una vista de lectura única sobre MB, tableros Stand, notificaciones de Bus y correo de rol autorizado. MB sigue siendo la superficie pública de envío/historial; inbox evita el sondeo transporte por transporte.
bashy inbox # lee cada fuente entrante
bashy skill show inbox
bashy mb post "<mensaje>" # para todos
bashy mb send <agente> "..." # para un agente, o un selector
Para estado que debe permanecer descubrible fuera del historial del terminal, usa
el buzón principal explícito. Las listas y búsquedas no consumen; solo ack saca
un elemento de la vista pendiente.
bashy inbox list --topic harness --search timeout
bashy inbox human list --topic posix-cert --project dhnt
bashy inbox human send --topic posix-cert --project dhnt --status blocked \
--ref docs/status.md "Profile D necesita revisión"
Los buzones de agente y humano comparten los mismos filtros y esquema JSON. read mantiene
un elemento pendiente, ack es explícito, preserve lo reabre y --all incluye
historial reconocido. Mantén el estado por debajo de 1024 bytes UTF-8 y enlaza detalles por una
ruta compartida estable, commit, issue, sala o referencia de artefacto.
Nunca consumas mensajes del tablero en silencio. Después de que una lectura devuelva publicaciones, muestra el mensaje completo en la consola de sesión visible para el usuario si es corto; de lo contrario, muestra el remitente/tema, un resumen conciso y la acción que requiere. La salida de la herramienta puede estar colapsada, por lo que la recepción interna por sí sola no es coordinación visible para el operador.
todo — lo que debe HACERSE. La lista de trabajo, con ámbito automático de la misma
manera que kb: la de este repositorio cuando estás en uno, la del host en caso contrario.
bashy todo list # qué está abierto aquí, prioridad primero
bashy todo add "<título>" # registra trabajo para que sobreviva a esta sesión
bashy sprint claim last STORY_ID # reclama trabajo del sprint seleccionado
bashy sprint submit last STORY_ID -m "evidencia de entrega"
Todos los sprints usan el mismo ciclo de vida y reglas de aceptación; ningún número de sprint está
reservado para mantenimiento. Selecciona un sprint explícitamente o usa last para la tarjeta
creada más recientemente. La omisión de la selección de sprint usa esa misma última tarjeta;
no crea un sprint. Usa --no-sprint para un todo de repositorio independiente.
Los todos personales siguen siendo independientes por defecto. Lee bashy sprint --help.
Crear un sprint con bashy sprint add "Título": asigna y devuelve automáticamente el
siguiente número disponible. No se requiere número ni selector next.
Las historias de sprint son cerradas por su gestor usando sprint accept después de
verificación; todo done genérico no puede cerrar una historia de sprint.
Ejecuta comandos como un agente, no como un humano
- Previsualiza antes de mutar:
bashy --dry-run SCRIPT(manifiesto legible para agente conBASHY_AGENTIC=1). - Pre-vuelo de un script:
bashy check --agent --script SCRIPT. - Ejecuta con un envoltorio de resultado capturado y estructurado:
bashy run --check --capture -- SCRIPT. - Búsqueda de capacidades con un solo comando (banderas, características — omite prueba y error):
bashy commands COMMAND --features. - En fallos, lee las pistas de stderr: el consejero espacio-temporal explica fallos determinados por el entorno (cwd incorrecto, herramienta faltante, disco lleno) para que no reintentes un comando condenado.
Antes de ejecutar algo que no escribiste, pregunta qué implica ejecutarlo.
bashy inspect actions [--json] [--kind command|script|agent|skill] lista cada
acción que este bashy puede ejecutar como una fila de faceta — kind name identity contract latitude authority effects_declared executor — en cuatro familias: un
command es exacto y determinista (el shell ejecuta lo escrito; los efectos provienen de su registro atlas), un enlace agent es juez/agéntico por definición
(ejecutor agentlaunch:<tool>, por lo que su costo y efectos están abiertos), una
skill está vinculada por el contrato más fuerte que lleva (cara dhnt con efectos
declarados, metadata-checks o none; un paso de juez hace que toda la ejecución sea
agéntica), y script es una familia que nada llena aún (reportado como 0, nunca
omitido). bashy define NOMBRE imprime la misma faceta para un nombre (línea runs:;
objeto action anidado bajo --json), y bashy inspect context --json
lleva los conteos como actions: {command, script, agent, skill}. Prefiere una
fila exacta/determinista cuando una satisface la tarea; recurre a una fila juez/agéntica
solo cuando la tarea necesita la latitud.
Navega código sin la danza del grep
bashy graph impact SÍMBOLO— qué código está acoplado a un símbolo.bashy ast symbols RUTA/bashy ast search PATRÓN/bashy ast refs SÍMBOLO/bashy ast map— basado en árboles sintácticos, sin modelo.- Memoria de repositorio compartida (una wiki agéntica donde se acumulan hallazgos de
otros agentes):
bashy graph recall CONSULTApara leer;bashy graph note/bashy graph observepara contribuir;bashy graph pitfallsantes de cambios arriesgados.
Habilidades: procedimientos verificados, controlados para este host
bashy skill list— solo habilidades aplicables en la coordenada de ESTE host (controladas por entorno);bashy skill show NOMBREpara leer una.bashy skill run NOMBRE— ejecuta una habilidad verificable por máquina; el contrato de éxito se verifica y cada ejecución deja una atestación re-verificable. Salida 0 si y solo si el contrato se mantuvo.bashy skill run NOMBRE --adapt --repair-agent "<tu CLI sin cabeza>"— auto-repara una habilidad fallida; las correcciones verificadas se aprenden una vez por host y son reutilizadas por cada agente.- Contribuye de vuelta: crea una carpeta de habilidad, luego
bashy skill learn DIR(la admisión requiere que el contrato realmente se mantenga aquí) ybashy skill promote NOMBRE(paquete revisado por humanos — nunca auto-publicado).
Valores predeterminados: comandos y páginas kb del pin de origen
Los comandos y páginas kb predeterminados de Bash# se envían en el código fuente de Bashy, no en su
binario. Una primera bashy self install (lo que ejecutan los instaladores) los configura;
para hacerlo a mano:
bashy src fetch bashy && bashy --bashsharp "${BASHY_HOME:-$HOME/.bashy}/src/bashy/examples/defaults/bashy-defaults.bsh" apply (statuspara verificar,merge --upgradedespués de una actualización: añade nuevos valores predeterminados y lista tus páginas que sombrean las cambiadas para que las reconcilies). Las páginas kb predeterminadas se leen automáticamente mediantebashy kb searchybashy recall`;
tu propia página con el mismo slug gana.
Edita el catálogo a través de verbos, nunca a mano
Nunca edites archivos bajo ~/.config/bashy/ (o cualquier BASHY_*_DIR) directamente:
las entradas incrustadas son inmutables y cada escritura es copia en escritura en el
anillo local, que solo hacen los verbos. bashy <noun> schema lista las rutas
punteadas que acepta un tool/model/agent; bashy <noun> set NOMBRE --set ruta=valor (--unset ruta) edita uno, bashy <noun> show NOMBRE --field ruta lo lee de vuelta. Habilidades: bashy skill add NOMBRE --description "..."
acuna una, bashy skill set NOMBRE / bashy skill rm NOMBRE edita y elimina,
bashy skill show NOMBRE --yaml imprime su registro (skill add ARCHIVO.yaml|-
lo re-importa).
Flota y espacio de trabajo (cuando la tarea supera una sesión)
bashy weave ...— espacios de trabajo aislados por issue para ejecuciones paralelas de agentes;bashy sprint ...— planificación/continuidad;bashy dag TAREAS.md— DAG de tareas definidas en markdown. Lee la habilidadconductor(bashy skill show conductor) antes de orquestar una flota.
Reglas generales
bashy inspect context --jsonprimero; confía en él por encima de tus propios sondeos.- Abre con
kb search+inbox+todo list; cierra conkb retro. Si recuerdas tres verbos de esta página, recuerda esos. Todo lo demás aquí