Skill Propor Conceito de Funcionalidade
Propósito
Criar um documento de conceito de funcionalidade que apresente a ideia da funcionalidade e explique o problema que ela resolve. Este é o primeiro passo no processo de proposta de funcionalidade.
Quando Usar
- O usuário quer propor uma nova funcionalidade para crumbly, forester ou outras crates florestais
- Iniciar a documentação de uma ideia de funcionalidade
- Necessidade de explicar "porquê" e "o quê" antes de mergulhar nos requisitos
Pré-requisitos
- O usuário descreveu a ideia da funcionalidade
Procedimento
0. Oferecer Lapidação de Ideias (Opcional)
Pergunte ao usuário:
Gostaria de usar um processo de lapidação de ideias para trazer mais clareza ao conceito? Isso envolve trabalhar com perguntas uma de cada vez para explorar ambiguidades e considerações de design.
Se sim, use a skill idea-honing seguindo o protocolo em skills/README.md. Retorne a esta skill após a lapidação da ideia estar completa.
1. Determinar o Número da Funcionalidade
Encontre o próximo número de funcionalidade disponível:
ls -1d ./docs/features/[0-9][0-9][0-9][0-9]-* 2>/dev/null | tail -1
Se não existirem funcionalidades, comece com 0001. Caso contrário, incremente o último número.
2. Criar Nome da Funcionalidade
Trabalhe com o usuário para criar um nome conciso e descritivo:
- Use letras minúsculas com hífens
- Mantenha curto (2-4 palavras)
- Torne-o descritivo
Exemplo: semantic-search, registry-management, skill-validation
3. Verificar Documento de Lapidação de Ideias
ls ./planning/NNNN-feature-name/idea-honing.md 2>/dev/null
Se existir, referencie-o ao escrever o conceito. O Q&A fornece material valioso para a narrativa.
4. Criar Diretório da Funcionalidade
mkdir -p ./docs/features/NNNN-feature-name
Substitua NNNN pelo número de quatro dígitos e feature-name pelo nome acordado.
5. Copiar Template de Conceito
cp ./docs/features/0000-templates/concept.md ./docs/features/NNNN-feature-name/
6. Preencher Documento de Conceito
Trabalhe com o usuário para completar concept.md como uma narrativa:
Frontmatter
- Defina
feature:comoNNNN-feature-name - Defina
status:comoproposed - Adicione
tracking-issue:opcional, se aplicável
Seção Problema
- Descreva a situação atual
- Explique a dor que isso causa
- Explique por que isso importa
Seção Solução
- Descreva o que os usuários vão experimentar
- Foque em "o quê" e "porquê" em vez de "como"
- Mantenha narrativa, não uma lista
Seção Como Funciona
- Conte a história do uso da funcionalidade
- Percorra o fluxo de trabalho naturalmente
- Mostre uso real, não passos abstratos
Seção Benefícios
- Explique o valor fornecido
- Conecte de volta ao problema
- Mostre o que se torna possível
Seção Notas Técnicas
- Breves restrições ou considerações
- Mantenha curto - detalhes vão no design.md
7. Revisar Fluxo Narrativo
Garanta que o documento:
- Leia como uma história, não uma especificação
- Evite marcadores e listas numeradas quando possível
- Foque na experiência do usuário e valor
- Explique "porquê" antes de "o quê"
Validação
Verifique se o conceito foi criado corretamente:
# Verifique se o diretório existe
ls -la ./docs/features/NNNN-feature-name/
# Verifique se o arquivo de conceito existe
ls ./docs/features/NNNN-feature-name/concept.md
# Verifique se tem conteúdo
cat ./docs/features/NNNN-feature-name/concept.md
Problemas Comuns
Muito técnico: Se o conceito parece um documento de design, refoque no problema e na experiência do usuário.
Muito abstrato: Se o conceito é vago, trabalhe com o usuário para adicionar exemplos concretos do ponto de dor.
Cheio de listas: Se há muitos marcadores, reescreva como prosa narrativa.
Próximos Passos
Após criar o conceito:
- Revise e refine a narrativa
- Obtenha feedback sobre se a funcionalidade é valiosa
- Uma vez que o conceito esteja sólido, prossiga para os requisitos usando a skill
propose-feature-requirements