O que superself faz?
Superself é uma CLI Apache-2.0 (npm install -g [email protected], Node 22.12+) que
versiona o estado de um projeto — metas, decisões, unidades de trabalho, relatórios —
como um log de eventos imutável em um repositório git separado do código. O
estado é derivado sob demanda, então nada nele é mantido manualmente. Esta habilidade
instrui um agente sobre como ler e escrever esse estado através da CLI self. Ela é
mantida pelos autores do Superself: https://github.com/fxylabs/superself
Quando esta habilidade se aplica
- O arquivo
AGENTS.mdouCLAUDE.mddo projeto contém um bloco entre<!-- superself:begine<!-- superself:end -->, ouself setupimprime o workspace, projeto e repositório para os quais este diretório resolve. - Ignore a habilidade quando
self --versionfalhar: o projeto não usa Superself, e nada abaixo deve ser inventado manualmente. Esta habilidade é escrita para[email protected]; uma versão major ou minor diferente pode ter movido um verbo ou flag, então verifiqueself <comando> --helpantes de confiar em um.
Início da sessão
- Execute
self contexte trate sua saída como verdade atual: a meta, decisões e convenções ativas, trabalho em aberto, relatórios recentes. Ele é derivado do log, nunca escrito manualmente. - Algo ausente do contexto foi propositalmente deixado de fora do conjunto
renderizado;
self search <consulta>encontra registros vivos que o contexto omitiu, eself work show <id>imprime o resumo completo e histórico de relatórios de uma unidade.
Durante o trabalho
- Trabalho substancial é anexado a uma unidade de trabalho. Crie uma com
self work add "<resultado esperado>"— o resultado é o que deve se tornar verdadeiro, não a tarefa — depoisself work start <id>.startlê o resumo e registra que esta sessão pegou a unidade; se outra sessão a detém, a CLI informa quem e desde quando e não recusa. Julgue e prossiga. - Após commitar, reporte o progresso:
self report <id> "<o que aconteceu>". O commit HEAD atual é anexado automaticamente como evidência;--evidence <commit|note>anexa outra coisa,--file <caminho>anexa um resumo mais longo. - Registre uma decisão confirmada pelo usuário:
self decide "<texto>" --why "<motivo>". Use--proposedquando o usuário ainda não a confirmou. Uma decisão por evento. - Bloqueado?
self work block <id> --on decisão|dependência|externo --why "...". Substituído ou movido?self work retire <id> --why "..." [--successor <id>]. Nunca marque tal unidade como concluída e nunca a deixe falsamente bloqueada. - Encontrou uma lacuna entre um objetivo e o estado atual? Proponha o trabalho com
self work proposee seu resumo; o usuário aceita ou recusa. - O usuário aprovou um próximo passo ou uma continuação? Registre-o imediatamente com
self work adde o contexto por trás dele. Um plano que vive apenas na conversa se perde quando a conversa termina.
Encerramento
self work done <id>fecha uma unidade apenas quando um relatório carrega um commit ou um artefato, ou o próprio "done" declara o que verificavelmente aconteceu:self work done <id> --report "<o que verificavelmente aconteceu>". Uma mera alegação é recusada, e os critérios declarados a bloqueiam até que cada um seja coberto.- O texto de um registro é imutável uma vez confirmado. Corrija-o reafirmando:
--supersedes <id>em qualquer verbo de adição registra a nova redação e mantém o histórico.retractretira um registro sem substituí-lo.
Regras que mantêm o estado confiável
- Registros — eventos, decisões, relatórios, convenções — são escritos em inglês para que quem os abrir em seguida possa lê-los; responda à pessoa em seu próprio idioma.
- Um branch atinge a main através de um pull request: revisão de PR e CI controlam o merge. Superself gerencia o contexto e o grafo de trabalho, não a porta de merge.
- Nunca edite manualmente arquivos de estado gerados ou qualquer coisa sob
.superself/. - Em um projeto sem um bloco superself, execute
self setupprimeiro. Se ele resolver o diretório para um projeto registrado, pergunte ao usuário uma vez se deseja executarself connect, que escreve o bloco gerenciado emAGENTS.mdouCLAUDE.md. Se não resolver nenhum projeto, pergunte uma vez se deseja registrá-lo comself project init. Nunca registre ou conecte um projeto por conta própria.
Aprofundando
self --help lista todos os verbos; self <comando> --help imprime as flags de um
comando sem tocar no estado. Guias de tópico acompanham a CLI:
self help agents— como uma sessão conduz esta CLI, do início ao fimself help context— o queself contextrenderiza, e por que algo está ausenteself help records— uma entidade por trás de cada tipo de registro, e como corrigir um registroself help placement— escopo, prioridade e exposição — como um registro ganha seu lugar no contextoself help work— o grafo de trabalho: resultados, evidências, critérios e propostasself help goals— metas de longo prazo, objetivos, marcos e o que é necessário para alcançar umself help workspace— o repositório, os projetos nele e como movê-lo entre máquinas