Bandeja de entrada (Inbox)
El búfer de captura del vault es la bandeja de entrada del backend de tareas, no una carpeta; paths.md posee esa regla y define para qué sirve Inbox/ en el disco. Una captura abandona el búfer hacia una carpeta PARA adecuada una vez que está claro qué es, o permanece en el backend si es solo una acción.
Bajo TASKS = files, la bandeja de entrada es la carpeta Inbox/ (paths.md dice lo que eso significa, incluidos los archivos sueltos); los pasos siguientes son iguales excepto el manejo de archivos sueltos.
Cada llamada de tarea es una operación de tasks.md, ejecutada según el adaptador para TASKS. Si el backend no está disponible, se aplica «Backend ausente» de tasks.md.
Capa base
Lee antes de actuar, cada una como ../../para/<archivo>.md relativa al directorio base de esta habilidad: contienen las reglas compartidas, no las repitas de memoria:
../../para/paths.md— siempre, incluido «Idioma»: las cadenas siguientes provienen delang/<IDIOMA>.md../../para/tasks.md— siempre: las operaciones; paraprocesstambién qué es una tarea, áreas, proyectos../../para/note-format.md— paraprocess../../para/confirm.md— paraprocess../../para/move.md— paraprocess, cuando enruta un archivo suelto fuera deInbox/
Subcomandos
La primera palabra de $ARGUMENTS elige el subcomando. Cualquier cosa que no sea list o process se trata como el texto de un add, así que /inbox un pensamiento sobre dormir captura ese pensamiento; la palabra clave add es opcional. $ARGUMENTS vacío → muestra los tres subcomandos y pregunta.
add <texto> — capturar
inbox.addcon untitley undescriptionopcional. Un texto corto es el título tal cual. Uno largo recibe un título corto enIDIOMAderivado de él (6 palabras o menos) y el texto completo como descripción.- No establecer nada más — sin fecha, prioridad ni etiquetas a menos que el usuario lo haya dicho explícitamente. Esto es un búfer, no un lugar para ordenar el pensamiento del usuario.
- Informar en una línea qué se creó, para que el usuario pueda renombrar si no está de acuerdo.
Si la captura obviamente pertenece a algún lugar específico, indícalo en el informe y ofrece /inbox process; no la enrutes sin que te lo pidan.
list — mostrar lo que está sin procesar
Solo lectura.
inbox.list— cada captura abierta.- Imprime una lista numerada, la más antigua primero, encabezada con la cadena
inbox.header({n}capturas,{days}la antigüedad de la más antigua). Solo títulos, sin descripciones. - Archivos sueltos. No bajo
TASKS = files(paths.md). Lista los*.mdenInbox/(solo nombres de archivo, no los abras). Si existen, añade una línea, la cadenainbox.strays({k}archivos). - Una bandeja de entrada vacía es una respuesta válida y buena: dilo claramente.
process — enrutar las capturas
La válvula del búfer. Interactivo, una captura a la vez — nunca vacíes toda la bandeja de entrada con destinos propuestos y pidas al usuario que apruebe en bloque.
-
Lista la bandeja de entrada como arriba — primero las capturas del backend (las más antiguas primero), luego los archivos sueltos de
Inbox/(bajoTASKS = files,inbox.listlos incluye todos,paths.md). Di cuántas hay y empieza por la primera. -
Para cada captura: muestra el título y el contenido (la descripción, o el cuerpo del archivo para un suelto) — brevemente si es largo. Luego da tu interpretación de qué es y ofrece las rutas. Los nombres de las rutas son las cadenas
inbox.route.*delang/<IDIOMA>.md; la columna izquierda siguiente es la clave:Ruta Qué ocurre inbox.route.actionuna tarea fuera de cualquier proyecto → la redacción se revisa según tasks.md«Qué es una tarea» y se propone y acuerda una redacción primero, luegotask.movecon elareaque elija el usuario (los nombres son los quetasks.mdda paraarea) y eltitleacordadoinbox.route.project_taskun paso de un proyecto existente → el proyecto se encuentra según find-target.md, la redacción se propone segúntasks.md«Qué es una tarea», luegotask.movecon eseproject_refy el nuevotitle; la tarea permanece abierta, no se crea ni cierra nada. BajoTASKS = files, un nombre base ya tomado es una colisión:note-format.md«Colisiones de nombres»inbox.route.projectun esfuerzo con un estado final → derivar a /projects createinbox.route.arearesponsabilidad continua → /areas create, o añadir a un Área existenteinbox.route.resourceconocimiento que vale la pena conservar → /resources createinbox.route.keepno está maduro aún — se queda en la bandeja de entrada, no hay vergüenza en ello inbox.route.deletebasura → cerrarlo (ver abajo) Recomienda una, con una razón en una frase. El usuario decide.
-
Ejecuta la ruta, pasando el texto de la captura a la habilidad que posee el destino — ella construye la nota a partir de su propia plantilla. Nunca escribas una nota aquí.
-
Cierra la captura una vez que su ruta se haya ejecutado:
- Captura del backend — enrutada al vault, o basura →
inbox.close— reversible (tasks.md), por lo tanto Nivel 1 (confirm.md).inbox.route.actioneinbox.route.project_taskmueven la tarea en sí (task.move) y la dejan abierta;inbox.route.keepla deja donde está. - Archivo suelto en
Inbox/— después de que/projects create,/areas createo/resources createhayan tomado su contenido, elimina el archivo mediante/remove; parainbox.route.delete, pásalo directamente a/remove.inbox.route.actionlo convierte en una tarea contask.addyarea, luego elimina el archivo de la misma manera.
- Captura del backend — enrutada al vault, o basura →
-
Luego pasa a la siguiente captura. No agrupes los cierres al final.
-
Detente cuando el usuario diga stop, e informa cuántas se procesaron y cuántas quedan. Vaciar toda la bandeja de entrada en una sola sesión no es el objetivo.
Notas
- La bandeja de entrada es deliberadamente de baja fricción:
addnunca hace una pregunta que pueda evitar.processes donde ocurre el pensamiento. - Todo en
IDIOMA, tareas incluidas.