Linguagem natural estruturada
Nesta aula
Palavras também definem interfaces
O pedido melhore o catálogo transfere para o executor decisões que o solicitante talvez não pretendesse delegar. Melhorar pode significar mudar cores, reordenar serviços ou ocultar os inativos. Duas implementações podem parecer razoáveis e produzir efeitos incompatíveis. O primeiro reparo é formular a transformação desejada, em vez de multiplicar adjetivos.
Uma instrução estruturada reúne contexto, objetivo, fonte, restrições, entregáveis e aceites. Aceite é a condição observável usada para decidir se o resultado atende ao combinado. Entregável é o objeto que será examinado, como uma alteração de arquivo ou um registro de verificação. Informar um formato de entrega não basta: um relatório pode estar bem organizado e descrever um comportamento errado.
O contrato operacional precisa permitir perguntas. Se um dado necessário não existe, a instrução deve orientar a registrar a lacuna. Caso contrário, o executor pode inventar arquivos, regras ou resultados para completar uma narrativa aparentemente coerente.
Uma instrução que permite conferir o resultado
Este modelo preenchido solicita uma unidade da Oficina Caracol. Os caminhos são os do projeto contínuo. O modelo não informa que a implementação já ocorreu.
| Campo | Conteúdo do pedido |
|---|---|
| Contexto | O catálogo usa dados de exemplo em pratica/data/casos.json. |
| Objetivo | Atender REQ-002, evitando exposição de serviços inativos. |
| Fonte | Requisitos em pratica/docs/requisitos.md e contrato de dados do pacote. |
| Mudança permitida | Ajustar a seleção em pratica/src/catalogo.mjs e os testes correspondentes. |
| Limites | Não acrescentar dependências, cadastro ou dados pessoais; não apagar registros para esconder inativos. |
| Aceite | Com entrada mista, a saída pública apresenta somente ativos; vazio e inválido continuam distintos. |
| Verificação | Executar npm test e npm run validate dentro de pratica; registrar resultados reais e falhas. |
| Entrega | Arquivos alterados, justificativa da regra, evidências e pendências. |
A fonte de dados define o material de entrada, mas não autoriza expor toda informação nela existente. O requisito de saída pública continua valendo. Essa distinção impede que o executor use a frase está no JSON como justificativa para revelar registros inativos.
Revisão do pedido antes de executar
- Troque palavras vagas por condições: profissional não é um aceite; ocultar serviços inativos é verificável.
- Leia a instrução como se fosse executar sem conhecer a conversa anterior. Localize a fonte de cada regra necessária.
- Produza duas interpretações plausíveis e compare o comportamento esperado.
- Resolva divergências que alterem requisito, dado público ou mudança permitida. Deixe decisões cosméticas livres quando não houver restrição.
- Confirme os comandos no README e em package.json. Uma instrução não deve ordenar um comando inexistente e tratar sua saída esperada como resultado real.
O teste das duas interpretações
Executora A entende ocultar como não desenhar o cartão na página, mas entrega todos os registros ao navegador. Executor B entende que a resposta pública deve omitir os inativos. A diferença é impeditiva quando REQ-002 proíbe revelar esses registros: é preciso esclarecer a fronteira pública e verificar a resposta, além da tela. Já usar margens de 12 ou 16 pixels pode ser aceitável se o pedido não fixa essa medida e a navegação permanece utilizável.
| Defeito na instrução | Correção direcionada |
|---|---|
| Não informa o estado inicial | Anexar ou indicar a versão e os arquivos existentes. |
| Mistura expectativa com resultado | Separar deve apresentar de apresentou na execução registrada. |
| Proíbe qualquer pergunta | Definir como relatar lacunas e quais decisões exigem esclarecimento. |
| Pede prova sem identificar o requisito | Associar cada evidência à afirmação que pretende sustentar. |
Condição de avanço
O pedido está pronto quando o executor consegue apontar fonte, mudança permitida e resultado verificável sem inventar regra relevante. Faça uma revisão de interpretação com exemplos. Uma divergência de gosto não bloqueia automaticamente o trabalho; uma divergência sobre quais dados podem sair bloqueia a unidade afetada até decisão.
Exercício com resposta
Reescreva: deixe o catálogo seguro e completo. Dados fornecidos: não há login; existem serviços ativos e inativos; o projeto não usa dependências externas; o objetivo desta unidade é somente REQ-002. Diga também uma ação que ficaria fora da solicitação.
Ver solução comentada
Resposta possível: ajuste a seleção do catálogo para que a saída pública não inclua registros inativos; preserve o contrato de dados e os estados vazio e inválido; altere somente o módulo de catálogo e seus testes; execute os comandos de verificação oficiais e relate os resultados efetivos. Criar um sistema de login ficaria fora da unidade. A solução vale se restringe o objetivo, explicita a fronteira de exposição e permite conferir o resultado. Chamar o sistema inteiro de seguro ou completo continuaria sem evidência suficiente.
Referências para aprofundamento
Leitura de apoio: S01, Software Requirements, temas de especificação e validação de requisitos. A instrução preenchida aplica esses princípios à unidade concreta; não é uma norma universal de redação de prompts.
Fontes relacionadas
Consulte os limites e as seções de apoio de cada referência.
S01Tente o exercício antes de consultar a solução. Marque a aula para organizar sua leitura.
A conclusão desta leitura não equivale a certificação ou aceite de um projeto real. Teste os exemplos no escopo indicado e registre as limitações.