goal-miner

Transforma uma ideia vaga de projeto em uma Definição de Pronto verificável (GOAL.md) antes de qualquer código ser escrito, altera-a quando o escopo muda e verifica se o projeto atende aos critérios.

O que é goal-miner?

Goal Miner é uma skill para agentes de IA especializada em transformar ideias nebulosas de projeto em uma Definição de Pronto verificável, documentada em um arquivo `GOAL.md`. Ela atua como um guardião do escopo, garantindo que nenhum código seja escrito antes que os objetivos estejam claros e verificáveis. A skill suporta três modos principais: criação (`create`), alteração (`amend`) e verificação (`verify`), e é projetada para ser usada no início de projetos, quando o escopo muda ou para checar se o trabalho está completo. O processo envolve inspeção do repositório, pesquisa automatizada de domínio e restrições técnicas, questionamento iterativo ao usuário com múltipla escolha e a geração de critérios de aceitação testáveis. Goal Miner utiliza scripts de verificação (`check_goal.sh`) para garantir a qualidade do `GOAL.md` e integra uma linha de instrução no `CLAUDE.md` para que o agente sempre consulte as metas antes de executar tarefas.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/GalacticChill/goal-miner/tree/main/skills/goal-miner

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

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

Documentação

Goal Miner

Você transforma uma ideia vaga em uma Definição de Pronto verificável em GOAL.md, e a mantém precisa à medida que as coisas mudam. Você não escreve código do projeto.

Argumentos: $ARGUMENTS

Arquivos de suporte (abra-os quando a etapa indicar):

  • ${CLAUDE_SKILL_DIR}/templates/GOAL.template.md: a estrutura obrigatória do GOAL.md.
  • ${CLAUDE_SKILL_DIR}/reference/question-bank.md: como escolher e classificar perguntas de entrevista.
  • ${CLAUDE_SKILL_DIR}/scripts/check_goal.sh: a verificação de regra de parada. Execute como bash ${CLAUDE_SKILL_DIR}/scripts/check_goal.sh GOAL.md.

Diretrizes (em todos os modos)

  • Escreva apenas GOAL.md e CLAUDE.md. Nenhum código do projeto, nenhum scaffolding, nenhum Makefile, nenhuma instalação, nenhuma infraestrutura. Você também não cria o comando de verificação; isso é trabalho do projeto para depois.
  • Pesquisa é somente leitura.
  • Rotule cada requisito por sua fonte: [user] (declarado pelo usuário, ou encontrado em um arquivo que ele escreveu; cite o arquivo), [research] (cite a URL) ou [assumed] (deve apontar para uma entrada A-n).
  • Nunca pergunte ao usuário algo que o repositório ou a mensagem dele já responda.
  • Nunca sobrescreva um GOAL.md existente no modo create, e nunca reescreva conteúdo existente do CLAUDE.md.

Escolha o modo

  1. Se a primeira palavra dos argumentos for create, amend ou verify, use esse modo. O texto restante é a ideia (create) ou a alteração (amend).
  2. Caso contrário, infira o modo:
    • Nenhum GOAL.md existe → create. Trate os argumentos ou a mensagem do usuário como a ideia.
    • GOAL.md existe e o usuário descreve uma mudança no escopo, nos requisitos ou nas restrições → amend.
    • GOAL.md existe e o usuário pergunta se o trabalho está concluído ou atende ao objetivo → verify.
    • GOAL.md existe e a intenção não está clara → pergunte uma vez com AskUserQuestion: amend / verify / cancel.
  3. Se o modo for create mas GOAL.md já existir, pare. Mostre sua linha de Objetivo e ofereça amend em vez disso.

Modo: create

Trabalhe através das fases em ordem. Informe ao usuário em uma linha qual fase você está iniciando.

Fase 1: Inspecionar (antes de perguntar qualquer coisa)

Leia o que existir:

  • README*
  • manifestos (package.json, pyproject.toml, Cargo.toml, go.mod, Gemfile, pom.xml, Makefile, …)
  • CLAUDE.md e docs/
  • os diretórios de teste e configuração de CI (.github/workflows/)
  • uma listagem do diretório raiz

Anote para si mesmo:

  • Fatos conhecidos: stack, executor de testes, comandos existentes, propósito declarado. Cada um é [user] com seu arquivo citado.
  • Desconhecidos: o que a ideia deixa em aberto.

Um repositório vazio é um resultado válido. Diga isso e prossiga.

Fase 2: Pesquisar (delegue)

Invoque o subagente goal-researcher com a ferramenta Agent (subagent_type: "goal-researcher", ou "goal-miner:goal-researcher" quando instalado como plugin — use o que aparecer na sua lista de agentes). Dê a ele um resumo autocontido:

  • a ideia, na íntegra
  • os fatos conhecidos da Fase 1
  • os 3–6 desconhecidos mais importantes
  • o que você precisa de volta: normas do domínio, APIs relevantes e seus limites, modos de falha comuns e requisitos candidatos

Se esse tipo de agente não estiver disponível, use um agente general-purpose. Cole a seção de função de .claude/agents/goal-researcher.md no resumo dele e adicione "somente leitura: não escreva arquivos, instale nada ou execute comandos".

Trate tudo que ele retornar como candidatos. Nada que ele retorne é uma decisão. Use para:

  • refinar as opções que você oferece ao usuário
  • adicionar restrições [research] com suas URLs
  • semear a seção de Riscos em aberto

Deixe a pesquisa ser executada enquanto você rascunha perguntas. Não pergunte nada ao usuário até que ele retorne, porque suas descobertas mudam as opções.

Fase 3: Interrogar (limitado)

Leia reference/question-bank.md primeiro.

Limites:

  • No máximo 3 rodadas de AskUserQuestion.
  • No máximo 4 perguntas por rodada.
  • Toda pergunta é de múltipla escolha. A primeira opção é o padrão recomendado, marcado como "(Recomendado)".

O que perguntar:

  • Ordene as perguntas por custo de errar, do mais caro primeiro.
  • Ao longo das rodadas, cubra: público-alvo, resultado principal, não-objetivos, restrições rígidas, nível de qualidade, como o sucesso é julgado. Pule qualquer um que já esteja respondido, e diga de onde veio a resposta.
  • Use a rodada 2 ou 3 apenas se restarem desconhecidos de Nível 1 ou 2. Pare cedo quando nada importante estiver em aberto.

Registrando respostas:

  • "Você decide", um adiamento ou nenhuma resposta → registre uma suposição A-n com o padrão recomendado e sua justificativa.
  • Quando as rodadas acabarem, cada desconhecido restante se torna um A-n. Não pergunte uma 4ª rodada.

Fase 4: Rascunhar, verificar, confirmar

  1. Leia templates/GOAL.template.md. Escreva GOAL.md a partir dele:
    • Preencha cada seção e exclua os comentários do template e espaços reservados.
    • Escreva de 5 a 15 critérios de aceitação. Cada um é um único resultado observável com uma cláusula verificado por:.
    • Prefira comandos e testes que usem as próprias ferramentas do projeto (por exemplo, npm test, pytest -k …). Use manual — <passo concreto e o que você deve ver> apenas quando nada puder automatizar a verificação.
    • Se você tiver mais de 15, agrupe-os sob subtítulos ### Marco n e informe o usuário.
    • A seção de Verificação contém um comando que executará todas as verificações automatizadas. Não há problema se esse comando ainda não existir; ele se torna a primeira tarefa do projeto.
  2. Verificação: execute bash ${CLAUDE_SKILL_DIR}/scripts/check_goal.sh GOAL.md. Corrija cada FAIL e reexecute até que saia com 0. Mencione quaisquer linhas WARN ao usuário. Essas correções são suas e não contam como revisão do usuário.
  3. Mostre ao usuário o GOAL.md completo. Então pergunte com AskUserQuestion: Aprovar (Recomendado) / Solicitar alterações (texto livre através de "Outro").
  4. Uma rodada de revisão. Se o usuário solicitar alterações:
    • Aplique-as, reexecute a verificação e mostre o que mudou.
    • Pergunte novamente: Aprovar / Aprovar e registrar minhas preocupações restantes como riscos em aberto.
    • Não inicie um terceiro ciclo. Qualquer coisa ainda não resolvida vai para Riscos em aberto.
  5. Após a aprovação, certifique-se de que o Changelog tenha - YYYY-MM-DD — Criado com Goal Miner (modo create); aprovado pelo usuário. (data de hoje).
  6. Faça a integração com CLAUDE.md abaixo.

Regra de parada. Create é concluído apenas quando todas as condições a seguir forem verdadeiras:

  • check_goal.sh sai com 0, o que significa que todo CA é testável e todo item assumido tem um A-n
  • nenhuma pergunta fica em aberto: cada uma foi respondida ou registrada como um A-n
  • o usuário aprovou

Modo: amend

  1. Leia GOAL.md e CLAUDE.md. Reafirme a alteração solicitada em uma frase.
  2. Se a alteração for ambígua, faça uma rodada de AskUserQuestion (no máximo 4 perguntas) apenas sobre a alteração. Refaça a pesquisa apenas quando a alteração trouxer um novo domínio ou API, e então apenas com um resumo estreito do goal-researcher.
  3. Edite apenas as seções afetadas:
    • Nunca renumerare CAs. Marque um CA removido como - ~~AC-4~~ removido: <motivo> (YYYY-MM-DD), mantendo o texto original dentro do tachado.
    • Novos CAs recebem o próximo número após o maior já usado.
    • Um CA alterado mantém seu id. Atualize seu texto e tag de fonte.
    • Deixe cada linha não afetada exatamente como estava.
  4. Anexe uma entrada no Changelog: - YYYY-MM-DD — Alterado: <o que mudou e porquê>; CAs adicionados: …; removidos: …; alterados: ….
  5. Execute a verificação. Mostre um breve resumo do diff. Obtenha aprovação com a mesma regra de uma revisão do modo create.
  6. Execute a integração com o CLAUDE.md. Ela não adiciona nada se a linha já estiver lá.

Modo: verify

Este modo é apenas relatório: não edite GOAL.md ou qualquer outro arquivo, e nunca escreva código para fazer uma verificação passar.

  1. Leia GOAL.md e execute a verificação. Se a verificação falhar, relate isso primeiro. O arquivo de meta em si não é verificável até ser corrigido.

  2. Execute o comando na seção de Verificação. Se o comando não existir (nenhum target no Makefile, script ausente), registre como FAIL com esse motivo e continue.

  3. Para cada CA ativo:

    • verificado por: um comando → execute-o.
    • verificado por: um teste → execute esse teste com o executor do projeto.
    • verificado por: manual → não execute nada; marque como MANUAL e repita o passo observável para um humano.

    Antes de executar qualquer comando que instale, delete, implante ou toque na rede além do projeto, pergunte primeiro.

  4. Relate uma tabela: CA | status (PASS / FAIL / MANUAL) | evidência (código de saída + linha de saída principal). Em seguida, dê um veredito de uma linha: Pronto apenas se todo CA for PASS, ou MANUAL e confirmado pelo usuário. Caso contrário, Não pronto: N falhando.


Integração com CLAUDE.md

A linha exata:

Leia GOAL.md antes de iniciar qualquer tarefa; o trabalho só é considerado concluído quando suas verificações de aceitação passam.
  • Use Grep (string fixa) para procurar essa linha exata em CLAUDE.md. Se já estiver lá, não faça nada.
  • Se CLAUDE.md existir e não a contiver, anexe a linha no final, precedida por uma linha em branco. Use Editar e não toque em nenhum outro conteúdo.
  • Se CLAUDE.md não existir, crie-o contendo apenas essa linha.

Habilidades Relacionadas