Inbox
O buffer de captura do vault é a caixa de entrada do backend de tarefas, não uma pasta — paths.md dita essa regra e para que serve Inbox/ no disco. Uma captura sai do buffer para uma pasta PARA adequada assim que fica claro o que é, ou permanece no backend se for apenas uma ação.
Sob TASKS = files, a caixa de entrada é a pasta Inbox/ (paths.md diz o que isso significa, incluindo arquivos soltos); os passos abaixo são os mesmos, exceto pelo tratamento de arquivos soltos.
Toda chamada de tarefa é uma operação de tasks.md, executada conforme o adaptador para TASKS. Se o backend estiver indisponível, tasks.md «Backend ausente» se aplica.
Camada base
Leia antes de agir, cada um como ../../para/<arquivo>.md relativo ao diretório base deste skill — estes contêm as regras compartilhadas, não as repita de memória:
../../para/paths.md— sempre, incluindo «Idioma»: as strings abaixo vêm delang/<IDIOMA>.md../../para/tasks.md— sempre: as operações; paraprocesstambém o que é uma tarefa, áreas de projetos../../para/note-format.md— paraprocess../../para/confirm.md— paraprocess../../para/move.md— paraprocess, quando roteia um arquivo solto para fora deInbox/
Subcomandos
A primeira palavra de $ARGUMENTS escolhe o subcomando. Qualquer coisa que não seja list ou process é tratada como o texto de um add, então /inbox um pensamento sobre sono captura esse pensamento — a palavra add é opcional. $ARGUMENTS vazio → mostra os três subcomandos e pergunta.
add <texto> — capturar
inbox.addcom umtítuloedescriçãoopcional. Um texto curto é o título como fornecido. Um texto longo recebe um título curto noIDIOMAderivado dele (6 palavras ou menos) e o texto completo literalmente como descrição.- Não defina mais nada — sem data, prioridade ou rótulos, a menos que o usuário os tenha mencionado. Isto é um buffer, não um lugar para formatar o pensamento do usuário.
- Relate em uma linha o que foi criado, para que o usuário possa renomear se discordar.
Se a captura claramente pertencer a algum lugar específico, diga isso no relatório e ofereça /inbox process — não a roteie sem ser solicitado.
list — mostrar o que não foi processado
Somente leitura.
inbox.list— cada captura aberta.- Imprima uma lista numerada, da mais antiga primeiro, encabeçada pela string
inbox.header({n}capturas,{dias}a idade da mais antiga). Apenas títulos, sem descrições. - Arquivos soltos. Não sob
TASKS = files(paths.md). Liste*.mdemInbox/(apenas nomes de arquivos, não os abra). Se existir algum, adicione uma linha, a stringinbox.strays({k}arquivos). - Uma caixa de entrada vazia é uma resposta válida e boa: diga isso claramente.
process — rotear as capturas
A válvula do buffer. Interativo, uma captura de cada vez — nunca despeje toda a caixa de entrada com destinos propostos e peça ao usuário para aprovar em lote.
-
Liste a caixa de entrada como acima — capturas do backend primeiro, da mais antiga, depois arquivos soltos de
Inbox/(sobTASKS = filesinbox.listos tem todos,paths.md). Diga quantas são e comece pela primeira. -
Para cada captura: mostre o título e o conteúdo (a descrição, ou o corpo do arquivo para um solto) — resumidamente se for longo. Em seguida, dê sua leitura do que é e ofereça as rotas. Os nomes das rotas são as strings
inbox.route.*delang/<IDIOMA>.md; a coluna esquerda abaixo é a chave:Rota O que acontece inbox.route.actionuma tarefa fora de qualquer projeto → a redação verificada conforme tasks.md«O que é uma tarefa» e uma reformulação proposta e acordada primeiro, depoistask.movecom aáreaque o usuário escolher (os nomes são aqueles quetasks.mddá paraarea) e otítuloacordadoinbox.route.project_taskum passo de um projeto existente → o projeto encontrado conforme find-target.md, a redação proposta conformetasks.md«O que é uma tarefa», depoistask.movecom esseproject_refe o novotítulo; a tarefa permanece aberta, nada é criado ou fechado. SobTASKS = filesum nome de base já existente é uma colisão:note-format.md«Colisões de nomes»inbox.route.projectum esforço com um estado final → passe para /projects createinbox.route.arearesponsabilidade contínua → /areas create, ou anexe a uma Área existenteinbox.route.resourceconhecimento que vale a pena manter → /resources createinbox.route.keepainda não maduro — permanece na caixa de entrada, sem vergonha nisso inbox.route.deletelixo → feche-o (veja abaixo) Recomende uma, com um motivo em uma frase. O usuário decide.
-
Execute a rota, passando o texto da captura para o skill que é dono do destino — ele constrói a nota a partir de seu próprio modelo. Nunca escreva uma nota aqui.
-
Feche a captura assim que sua rota for executada:
- Captura do backend — roteada para o vault, ou lixo →
inbox.close— reversível (tasks.md), então Nível 1 (confirm.md).inbox.route.actioneinbox.route.project_taskmovem a tarefa em si (task.move) e a deixam aberta;inbox.route.keepa deixa onde está. - Arquivo solto em
Inbox/— após/projects create,/areas createou/resources createterem absorvido seu conteúdo, remova o arquivo via/remove; parainbox.route.delete, passe-o diretamente para/remove.inbox.route.actiono transforma em uma tarefa comtask.addearea, depois remova o arquivo da mesma forma.
- Captura do backend — roteada para o vault, ou lixo →
-
Depois vá para a próxima captura. Não agrupe os fechamentos no final.
-
Pare quando o usuário disser pare, e relate quantas foram processadas e quantas restam. Esvaziar toda a caixa de entrada em uma única sessão não é o objetivo.
Notas
- A caixa de entrada é deliberadamente de baixo atrito:
addnunca faz uma pergunta que possa evitar.processé onde o pensamento acontece. - Tudo no
IDIOMA, tarefas inclusive.