Communitygithub.com

luci-efe/skills

Use quando uma funcionalidade, refatoração ou design está subespecificado ou possui abordagens concorrentes — antes de escrever código para trabalho que toque em formato de dados, limites de segurança, interfaces públicas ou mais do que alguns arquivos. Não para correções de tamanho de digitação.

O que é skills?

Esta skill, /crucible, fornece um processo estruturado para tomar decisões de design antes de escrever código, especialmente quando uma funcionalidade ou refatoração está mal definida ou tem abordagens concorrentes. Ela é ideal para trabalhos que afetam formato de dados, limites de segurança, interfaces públicas ou muitos arquivos, mas não para correções triviais. A skill guia o agente a primeiro ler o código existente e documentar fatos, depois usar uma 'escada' de decisão para maximizar a reutilização (pular, reutilizar código existente ou usar a stdlib) antes de escrever código novo mínimo. Em seguida, ela avalia cinco eixos críticos: escopo, invariantes de dados e estado, modos de falha, segurança/confiança e prova de verificação. Com base nisso, o agente faz perguntas específicas (máximo 3 por lote) sobre o que está em aberto que pode mudar o design, ou documenta suposições. O resultado final é um registro de decisão em `.ramos/decisions/` com fatos, resultado da escada, eixos resolvidos e comando de prova. Essa abordagem evita codificação especulativa e garante que questões de design sejam resolvidas explicitamente antes da implementação.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/luci-efe/skills/tree/HEAD/skills/crucible

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

/crucible

Leia primeiro, pergunte por último. O humano responde apenas o que o código não pode.

Passo 1: Leia (nenhuma pergunta ainda)

Escreva o que o código já decide como fatos com caminho:linha. Cada pergunta posterior deve ser algo que esses fatos não puderam responder.

Passo 2: A escada (antes de propor algo novo)

Para cada parte da mudança solicitada, pare no primeiro "sim":

  1. Podemos pular ou excluir? O requisito já está atendido ou não é necessário? → diga isso.
  2. Já está no repositório? Um helper, componente ou padrão existente → reutilize (cite caminho:linha).
  3. Está na stdlib ou em uma dependência existente? → use.
  4. Só então: o código novo mínimo, sem opções especulativas ou abstrações.

Passo 3: Cinco eixos

Para cada eixo, marque como resolvido (cite o código ou a solicitação) ou em aberto:

  1. Escopo: o que está incluído e o que está explicitamente excluído.
  2. Invariantes de dados e estado: o que deve ser sempre verdade. Migrações?
  3. Modos de falha: o que acontece com entrada inválida, tempo limite, falha parcial, repetição.
  4. Limites de segurança e confiança: quem pode chamar isso, com quais dados e onde a validação reside.
  5. Prova de verificação: qual verificação provará que está concluído (alimenta /proof).

Passo 4: Pergunte apenas o que está em aberto

  • Um eixo está em aberto e a resposta muda o design? → pergunte. Máximo 3 perguntas por lote. Cada uma dá sua resposta recomendada e sua troca, para que o humano possa apenas dizer "sim".
  • Está em aberto mas é de baixo risco? → decida e registre como assumido.
  • Tudo está resolvido? → não pergunte nada. Vá para o passo 5.
  • Uma verdadeira bifurcação arquitetural merece a opinião de outros modelos? → /council com este registro como artefato.

Passo 5: Registre

Escreva .ramos/decisions/<tópico>.md:

# <tópico> (<data>)
## Fatos (do código)        - … (caminho:linha)
## Resultado da escada      - reutilizar X / stdlib Y / novo Z (porquê)
## Eixos                     | eixo | resolvido/assumido/respondido | decisão | fonte |
## Fora do escopo           - …
## Prova                    - comando(s) exato(s) que /proof executará

Concluído quando

Cada eixo está resolvido, assumido ou respondido, o registro existe e o comando de prova está nomeado. Perguntas de design que não foram respondidas e que mudam o design → pare e relate bloqueado ao humano. Não comece a codificar.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas