Encerrar Sessão (Wrap Session)
Encerra a sessão atual de forma limpa. O chat é um rascunho. O disco é a verdade.
/wrap-session significa: inspecionar o resíduo da sessão, propor ações duráveis, aguardar
aprovação do proprietário, executar apenas as ações aprovadas e, em seguida, escrever o recibo.
Uso
Use antes de sair de uma sessão com código, decisões, documentos, alterações operacionais, ou trabalho inacabado que outra sessão deva retomar.
Pule conversa fiada sem nada durável.
Recibo
Um recibo por sessão:
~/.local/state/session-wrap/<session_id>.md
Use o ID de sessão do harness quando disponível. Caso contrário, gere
local-YYYYMMDD-HHMMSS-<cwdslug>.
O front matter do recibo deve conter:
session_idharness: nome do harness ativo, ouothersource: superfície da sessão ativa, ouothercwd: caminho absolutoproject: nome do repositório Git mais próximo, nome do diretório mais próximo, ou(root)wrapped_at: timestamp ISO-8601next: uma primeira ação
Cabeçalhos do corpo: Concluído, Decisões, Escrito, Git, Adiado, Próximo.
Um recibo significa fechamento limpo. Trabalho inacabado é adiado, nunca um recibo aberto. Re-encerrar o mesmo ID de sessão sobrescreve o recibo antigo.
Procedimento
1. Inspecionar
Colete o ID da sessão, a fonte, o diretório atual absoluto, o rótulo do projeto e—quando
dentro de uma árvore de trabalho Git—git status --short --branch.
Conclusão: todo campo do recibo tem um valor verdadeiro.
2. Elaborar Plano de Encerramento
Não escreva ainda. Mostre:
PLANO DE ENCERRAMENTO
project: ...
cwd: ...
Concluído:
- resultado + caminho de evidência, commit, ou URL
Decisões a persistir:
1. decisão → caminho proposto, ou pular
Trabalho adiado:
- item → backlog proposto, ticket, ou documento de origem
Git:
- limpo, ou sujo e intencional
- mensagem de commit proposta, se necessário
- push: não por padrão
Memória:
- fato estável, ou nenhum
Próxima sessão começa com:
- uma ação
Aponte para artefatos existentes. Não copie o chat inteiro para um documento. Coloque cada item inacabado em um local real ou marque-o explicitamente como pulado.
3. Portão do proprietário
Peça ao proprietário para aprovar ou editar:
- Escritas de Decisões, Adiado e Memória
- Ação Git: sair, commitar, ou commitar+push
- Edições do plano
Aceite all, números selecionados, edições de texto livre, ou cancel.
Em caso de cancelamento: não escreva nada e relate o cancelamento.
4. Executar ações aprovadas
Execute apenas as escritas e ações Git aprovadas. Verifique cada efeito externo antes de reivindicar sucesso. Relate falhas como falhas.
5. Escrever recibo
Crie o diretório pai quando ausente. Escreva:
---
session_id: <id>
harness: <harness>
source: <superfície da sessão|other>
cwd: <caminho absoluto>
project: <projeto>
wrapped_at: <ISO-8601>
next: <uma ação>
---
# Encerrar Sessão · <projeto>
## Concluído
- ...
## Decisões
- ...
## Escrito
- caminho — o quê, ou (nenhum)
## Git
- ...
## Adiado
- item → local, ou (nenhum)
## Próximo
- ...
Conclusão: o arquivo de recibo existe no caminho esperado.
6. Confirmar
Responda com o caminho do recibo, arquivos ou alterações Git feitas, trabalho adiado e seu local, e a linha de Próximo. Pare.
Relatório de status opcional
Execute o detector complementar quando disponível:
bin/wrap-status.sh
bin/wrap-status.sh init
Ele lê o banco de dados state.db do Hermes mais recibos. init é explícito e cria apenas
o diretório de recibos mais a linha de base do rollout. Sem o banco de dados de estado do Hermes,
ele relata recibos e sai com sucesso.