Skill: criar um plugin do Mira
Um plugin é um agente do Mira escrito pelo usuário. Mora em mira-plugins/<id>/, não entra no pacote do Mira, e é compartilhável.
Antes de tudo: este skill orquestra o Reversa. Se o usuário só quer um SKILL.md rápido e improvisado, diga que ele pode escrever a pasta na mão seguindo
mira-templates/authoring/plugin-exemplo/e pular este fluxo inteiro. Não empurre o processo completo para quem não pediu.
Fase 0, preparo
0.1. Colete a ideia e derive o identificador
Pergunte, em uma pergunta só, o que o agente deve fazer. Com a resposta, proponha um identificador no formato <autor>-<nome> e confirme.
Regras do identificador, todas obrigatórias:
- Só minúsculas, dígitos e hífen, com pelo menos um hífen.
- Não pode começar com
mira-, prefixo reservado aos agentes nativos. - Não pode colidir com agente nativo nem com pasta já existente em
mira-plugins/.
Confira as duas últimas listando mira-plugins/ e lendo agents em .mira/state.json. Se colidir, proponha outro e siga.
0.2. Confira o Reversa
Procure os skills do Reversa nos diretórios de skills (.claude/skills/reversa-new/, .agents/skills/reversa-new/). Se não existirem:
Para criar plugin eu preciso do Reversa nesta pasta. Ele não vem com o Mira. Vou rodar
npx reversa installaqui. Isso cria.reversa/e mexe no seuCLAUDE.mde no.gitignore. Posso seguir?
Espere a resposta. Sem "sim" explícito, encerre sem instalar nada. Com "sim", rode e siga.
0.3. Crie a pasta
Copie mira-templates/authoring/plugin-exemplo/ para mira-plugins/<id>/ e ajuste mira-plugin.json: id, name, author, description. Deixe version em 0.1.0 e tier em prompt-only.
Ajuste também o campo name do cabeçalho do SKILL.md para o id. Os três precisam bater: nome da pasta, id do manifesto, name do cabeçalho.
0.4. Avise sobre as specs
Diga, com estas palavras ou equivalentes:
As specs deste plugin ficam em
_reversa_sdd/e_reversa_forward/, aqui na sua máquina. Elas não entram no pacote que você compartilha. Quem receber o plugin recebe ele funcionando, mas não consegue evoluí-lo com Reversa a partir das specs. Se apagar essas pastas, sobra só o SKILL.md.
Fase 1, especificação
Rode /reversa-new apenas se _reversa_sdd/prd.md ainda não existir.
O motivo é mecânico: o /reversa-new grava prd.md, ideation.md e personas.md na raiz da área de saída, um conjunto por projeto e não por feature. Rodar de novo destruiria a especificação do plugin anterior.
- Primeiro plugin do usuário: rode
/reversa-newem modo expresso. O brief é a oficina de plugins dele, não um plugin específico. Algo como "coleção de plugins do Mira de , agentes próprios que estendem o Mira". - Do segundo em diante: pule esta fase inteira e vá direto para a fase 2. Diga ao usuário que o PRD da oficina já existe e que cada plugin entra como feature.
Fase 2, implementação
Rode o ciclo forward, nesta ordem: /reversa-requirements → /reversa-clarify (só se sobrar dúvida) → /reversa-plan → /reversa-to-do → /reversa-coding.
O requirements descreve este plugin. O actions.md tem que mandar escrever dentro de mira-plugins/<id>/, e nada fora dela.
Restrições que precisam aparecer no requirements, porque o Mira as impõe na ativação:
- O plugin é autocontido: nenhum arquivo dele mora fora da própria pasta.
- Nenhum arquivo executável (
.js,.sh,.bat,.ps1,.pye afins). A primeira versão do sistema de plugins recusa por completo, porque o plugin é ativado sozinho no início da sessão. - O agente é um
SKILL.mdsó, comreferences/eassets/opcionais ao lado.
Fase 3, ativar
- Rode
npx mira-animator plugin validate <id>. - Se reprovar, corrija o que o código de recusa apontar e valide de novo. Não siga com plugin reprovado.
- Rode
npx mira-animator plugin sync. - Diga que o comando aparece na próxima sessão, porque é quando o agente relê os skills.
Depois
- Evoluir:
/mira-new-plugin editar <id>entra direto na fase 2, sem refazer o PRD. - Compartilhar:
npx mira-animator plugin pack <id>gera o.mplug. Quem recebe rodanpx mira-animator plugin add <arquivo>, ou simplesmente coloca a pasta emmira-plugins/. - Desinstalar: apagar
mira-plugins/<id>/. O Mira remove a cópia ativada sozinho na sincronização seguinte.
Modo editar
Quando o usuário chamar /mira-new-plugin editar <id>:
- Confirme que
mira-plugins/<id>/existe. Se não existir, liste o que existe e pare. - Pule as fases 0 e 1 inteiras.
- Entre na fase 2 pelo
/reversa-requirements, descrevendo só o que muda. - Suba a
versionnomira-plugin.jsonao terminar, senão o Mira não reativa a cópia. - Faça a fase 3.
O que este skill nunca faz
- Não instala o Reversa sem confirmação explícita do usuário.
- Não escreve nada fora de
mira-plugins/<id>/, exceto os artefatos que o próprio Reversa gera em_reversa_sdd/e_reversa_forward/. - Não roda
/reversa-newmais de uma vez no mesmo projeto. - Não empacota nem publica nada sem o usuário pedir.