propor-requisitos-de-funcionalidade

Criar ou atualizar especificações de requisitos de funcionalidade usando notação EARS, com exemplos e apêndices.

O que é propor-requisitos-de-funcionalidade?

Esta skill permite que um agente de IA (como Claude Code, Cursor ou Codex) crie ou atualize especificações formais de requisitos para uma funcionalidade, utilizando a notação EARS (Easy Approach to Requirements Syntax). O objetivo é transformar um conceito de funcionalidade aprovado em requisitos testáveis e específicos, cobrindo aspectos funcionais, não funcionais e de tratamento de erros. A skill orienta todo o fluxo: verificar a existência do documento de conceito, copiar um modelo de requisitos, definir um prefixo para IDs, preencher a visão geral, detalhar requisitos com a estrutura WHILE/WHEN/THEN/SHALL, adicionar apêndices para exemplos extensos e validar o documento final. É útil para equipes de desenvolvimento que precisam de uma especificação clara e rastreável, especialmente antes da fase de design. A skill garante que os requisitos sejam completos, testáveis e sigam um padrão consistente, evitando ambiguidades e preparando o terreno para a próxima etapa de design.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/cbgbt/bottlerocket-forest/tree/main/skills/propose-feature-requirements

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

Habilidade: Propor Requisitos de Funcionalidade

Propósito

Criar uma especificação formal de requisitos para uma funcionalidade usando notação EARS. Isso traduz o conceito em requisitos testáveis e específicos.

Quando Usar

  • O conceito da funcionalidade existe e foi aprovado
  • É necessário especificar exatamente o que o sistema deve fazer
  • Pronto para definir requisitos funcionais e não funcionais

Pré-requisitos

  • O documento de conceito da funcionalidade existe em docs/features/NNNN-feature-name/concept.md
  • O conceito foi revisado e aprovado
  • O usuário entende o escopo da funcionalidade

Procedimento

1. Verificar se o Conceito Existe

# Verificar se o conceito existe
ls ./docs/features/NNNN-feature-name/concept.md

Se não existir, use a habilidade propor-conceito-de-funcionalidade primeiro.

2. Verificar Documento de Refinamento de Ideia

ls ./planning/NNNN-feature-name/idea-honing.md 2>/dev/null

Se existir, revise-o para obter insights que informem os requisitos. As perguntas e respostas podem revelar casos extremos e restrições.

3. Copiar o Modelo de Requisitos

cp ./docs/features/0000-templates/requirements.md ./docs/features/NNNN-feature-name/

4. Determinar o Prefixo dos Requisitos

Escolha um prefixo curto (2-5 caracteres) para os IDs dos requisitos:

  • Deve ser descritivo da funcionalidade
  • Exemplos: SEM para busca-semântica, REG para gerenciamento-de-registro
  • Será usado como SEM-1, SEM-2, etc.

5. Preencher a Visão Geral

Escreva uma breve descrição do que esta especificação cobre. Faça referência ao documento de conceito.

6. Definir Requisitos Funcionais

Para cada requisito, use o formato EARS:

**ENQUANTO** [estado ou condição]
**QUANDO** [gatilho ou evento]
**ENTÃO** o sistema **DEVE** [comportamento exigido]

Adicione exemplos inline apenas se forem realmente pequenos (1-3 linhas):

chave = "valor"

Para exemplos maiores, anote-os para os apêndices.

7. Definir Requisitos Não Funcionais

Adicione requisitos de desempenho, usabilidade, segurança ou outras qualidades:

**ENQUANTO** [condição de operação]
**ENTÃO** o sistema **DEVE** [requisito de desempenho]

Perguntas de escalabilidade (faça estas para cada operação principal):

  • O que acontece quando há 1000x mais itens? 1M arquivos? 10M linhas?
  • O uso de memória deve escalar com o tamanho dos dados, ou permanecer constante?
  • Qual é a latência aceitável? Ela degrada com a escala?

Essas perguntas revelam restrições que se tornarão Restrições Críticas na fase de design. Se uma operação deve ser O(1) em memória ou O(log n) em tempo, declare isso aqui.

8. Definir Tratamento de Erros

Especifique como os erros devem ser tratados:

**ENQUANTO** [operação em andamento]
**ONDE** [ocorre a condição de erro]
**ENTÃO** o sistema **DEVE** [comportamento de tratamento de erro]

9. Adicionar Apêndices

Para exemplos maiores que poluiriam os requisitos:

  • Esquemas de resposta de API
  • Formatos de arquivos de configuração
  • Estruturas de dados
  • Especificações de protocolo

Cada apêndice deve ser claramente rotulado:

## Apêndice A: Esquema de Resposta da API
## Apêndice B: Formato de Arquivo de Configuração

10. Revisar para Completude

Garanta que:

  • Todos os requisitos usam palavras-chave EARS
  • Os requisitos são testáveis e específicos
  • Exemplos inline são realmente pequenos
  • Exemplos maiores estão nos apêndices
  • Os requisitos possuem IDs únicos com o prefixo escolhido

Validação

Verifique o documento de requisitos:

# Verificar se o arquivo existe
ls ./docs/features/NNNN-feature-name/requirements.md

# Verificar se tem conteúdo
head -50 ./docs/features/NNNN-feature-name/requirements.md

# Verificar palavras-chave EARS
grep -E "(ENQUANTO|QUANDO|ONDE|ENTÃO|DEVE)" ./docs/features/NNNN-feature-name/requirements.md

Problemas Comuns

Palavras-chave EARS ausentes: Todo requisito deve usar ENQUANTO/QUANDO/ONDE/ENTÃO/DEVE.

Muito vago: Os requisitos devem ser específicos o suficiente para serem testados.

Exemplos inline muito grandes: Mova qualquer coisa com mais de 3 linhas para um apêndice.

Prefixo inconsistente: Todos os IDs de requisitos devem usar o mesmo prefixo.

Próximos Passos

Após criar os requisitos:

  1. Revise para completude e testabilidade
  2. Obtenha feedback dos implementadores
  3. Assim que os requisitos estiverem sólidos, passe para o design usando a habilidade propor-design-de-funcionalidade

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

ad-hoc-implementation-plan

Transform a rough plan into implement-commit ready artifacts. Allows rigorous review while implementing.

build-kit-locally

Build a kit and publish it to a locally hosted registry for development testing

build-variant-from-local-kits

Build a variant using locally published kits for development validation

deep-research

Create educational documents that build understanding progressively with citations

edit-spec-file

Edit Bottlerocket RPM spec files following project style conventions

fact-find

Quick lookup of specific facts about Bottlerocket with citations

idea-honing

Clarify feature ideas through iterative Q&A, recording insights to guide concept development

implement-commit

Implement commits from an implementation plan using a TDD pipeline

local-registry

Start and manage a local OCI registry for Bottlerocket kit development

prepare-core-kit-release

Prepare bottlerocket-core-kit for release by bumping version and updating changelog

propose-feature-concept

Create a new feature concept document to pitch the idea and explain the problem/solution

propose-feature-design

Create or update feature technical design document with architecture and implementation guidance

propose-feature-test-plan

Create a test plan mapping EARS requirements and Critical Constraints to specific tests

propose-implementation-plan

Create an implementation plan with atomic commits that build toward a complete feature

review-code

Deep code review generating PR comments via principled question-driven analysis

review-scope

Verify code changes match intended scope and requirements without exceeding boundaries

review-style

Verify code follows project style guides without providing improvement suggestions

test-local-twoliter

Build and test local changes to twoliter before releasing

update-twoliter

Update all Bottlerocket repositories to a new Twoliter version

Habilidades Relacionadas