mattpocock/to-spec

Transforme a conversa atual em uma especificação técnica e publique-a no sistema de issues do projeto: sem entrevistas, apenas síntese do que já foi discutido.

O que é to-spec?

Este skill pega o contexto da conversa e o entendimento do código-fonte para gerar uma especificação técnica completa e publicá-la diretamente no sistema de issues do projeto. Diferente de abordagens tradicionais, ele não faz perguntas adicionais ao usuário — basta o que já foi discutido. A skill é útil para equipes de desenvolvimento que desejam acelerar a documentação de requisitos e decisões de implementação, reduzindo o atrito de entrevistas desnecessárias. Ela opera explorando o repositório, identificando as melhores 'costuras' (seams) de teste — priorizando as existentes e propondo novas apenas quando necessário — e, por fim, escrevendo a especificação seguindo um template pré-definido que cobre problema, solução, histórias de usuário, decisões de implementação e teste, e escopo. Uma vez pronta, a especificação é publicada como issue com o rótulo 'ready-for-agent', dispensando triagem adicional. A skill é compatível com assistentes como Claude Code, Cursor e Codex, e requer que o vocabulário de labels e o sistema de issues já tenham sido configurados (via `/setup-matt-pocock-skills`).

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mattpocock/skills/tree/main/skills/engineering/to-spec

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

Este skill pega o contexto da conversa atual e o entendimento do código-fonte e produz uma especificação técnica. NÃO entreviste o usuário; apenas sintetize o que você já sabe.

O sistema de issues e o vocabulário de labels de triagem devem ter sido fornecidos a você. Se não, peça ao usuário para executar /setup-matt-pocock-skills.

Processo

  1. Explore o repositório para entender o estado atual do código-fonte, se ainda não o fez. Use o glossário de domínio do projeto ao longo da especificação e respeite qualquer ADR na área que você está tocando.

  2. Esboce as costuras (seams) nas quais você vai testar a funcionalidade. Costuras existentes devem ser preferidas em relação a novas. Use a costura mais alta possível. Se novas costuras forem necessárias, proponha-as no ponto mais alto possível. Quanto menos costuras houver no código, melhor — o número ideal é uma.

Verifique com o usuário se essas costuras correspondem às expectativas dele.

  1. Escreva a especificação usando o template abaixo e, em seguida, publique-a no sistema de issues do projeto. Aplique o rótulo de triagem ready-for-agent — não é necessária triagem adicional.

Declaração do Problema

O problema que o usuário está enfrentando, da perspectiva do usuário.

Solução

A solução para o problema, da perspectiva do usuário.

Histórias de Usuário

Uma lista LONGA e numerada de histórias de usuário. Cada história deve estar no formato:

  1. Como , quero , para que <benefício>

<exemplo-de-história-de-usuário>

  1. Como cliente de banco móvel, quero ver o saldo nas minhas contas, para que eu possa tomar decisões mais informadas sobre meus gastos </exemplo-de-história-de-usuário>

Esta lista de histórias de usuário deve ser extremamente abrangente e cobrir todos os aspectos da funcionalidade.

Decisões de Implementação

Uma lista de decisões de implementação que foram tomadas. Isso pode incluir:

  • Os módulos que serão construídos/modificados
  • As interfaces desses módulos que serão modificadas
  • Esclarecimentos técnicos do desenvolvedor
  • Decisões arquiteturais
  • Mudanças no esquema
  • Contratos de API
  • Interações específicas

Não inclua caminhos de arquivo específicos ou trechos de código. Eles podem ficar desatualizados muito rapidamente.

Exceção: se um protótipo produziu um trecho que codifica uma decisão com mais precisão do que a prosa (máquina de estados, reducer, esquema, formato de tipo), inclua-o na decisão relevante e observe brevemente que veio de um protótipo. Apare apenas as partes ricas em decisão, não uma demonstração funcional, apenas as partes importantes.

Decisões de Teste

Uma lista de decisões de teste que foram tomadas. Inclua:

  • Uma descrição do que constitui um bom teste (testar apenas comportamento externo, não detalhes de implementação)
  • Quais módulos serão testados
  • Exemplos anteriores para os testes (ou seja, tipos semelhantes de testes no código-fonte)

Fora do Escopo

Uma descrição das coisas que estão fora do escopo desta especificação.

Notas Adicionais

Quaisquer notas adicionais sobre a funcionalidade.

Individual skills in this repo

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

mattpocock/ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

mattpocock/caveman

Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman.

mattpocock/claude-handoff

Hand the current conversation off to a fresh background agent that picks up the work immediately.

mattpocock/codebase-design

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

mattpocock/design-an-interface

Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".

mattpocock/diagnose

Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.

mattpocock/diagnosing-bugs

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.

mattpocock/domain-modeling

Build and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.

mattpocock/edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

mattpocock/git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

mattpocock/grilling

Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.

mattpocock/grill-me

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

mattpocock/grill-with-docs

Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.

mattpocock/handoff

Compact the current conversation into a handoff document for another agent to pick up.

mattpocock/implement

Implement a piece of work based on a PRD or set of issues.

mattpocock/implement-spec

Implement a specification in code.

mattpocock/improve-codebase-architecture

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

mattpocock/loop-me

Grill me about specs for the workflows I want to build, within this workspace.

mattpocock/migrate-to-shoehorn

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

mattpocock/obsidian-vault

Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.

Habilidades Relacionadas