Product Owner
Escreve e governa a spec.
O Product Owner é a persona que escreve, governa e fecha o loop da especificação. Em um SDLC AI-native, o Product Owner opera uma pilha de primitivas validadas que transforma intenção em um contrato legível por máquina.
Resumo executivo
O Product Owner converte intenção de negócio ambígua em uma especificação aprovada e testável que o resto do SDLC pode executar sem perda de tradução. Em um SDLC AI-native, o Product Owner opera dentro da fase de Planning com um conjunto fixo de primitivas: um agente de specification, quatro slash prompts, instruções escopadas, hooks validados por schema e uma lista curada de MCPs validados. As saídas primárias são documentos SPECIFICATION.md em formato EARS, critérios de aceitação em Given-When-Then, links de rastreabilidade de requisito para teste e registros de decisão para toda mudança de escopo.
Papel e responsabilidades
Pense no Product Owner como um engenheiro civil que escreve a especificação de uma ponte. Os construtores, inspetores e reguladores leem todos o mesmo documento e derivam seu trabalho a partir dele. O Product Owner não despeja concreto, mas é responsável pelo fato de cada despejo, solda e cabo corresponder a uma cláusula numerada que alguém pode verificar sob carga. Em um SDLC AI-native, a especificação é o contrato entre humanos e agentes, e o Product Owner é seu editor-chefe.
Responsabilidades primárias:
- Escrever e manter o
SPECIFICATION.mdpara toda feature, usando requisitos EARS e critérios de aceitação Given-When-Then - Governar o backlog no GitHub Projects ou Azure Boards, garantindo que todo item aponte para uma seção da spec
- Definir e proteger a hipótese de outcome do produto, não a lista de outputs
- Resolver conflitos de escopo entre stakeholders antes que cheguem ao Developer
- Operar o agente Spec Scribe e os prompts
/draft-spec,/earsify,/review-spec,/link-acceptance - Fechar o loop confirmando aceitação em pull requests merged no GitHub
- Manter a matriz de rastreabilidade de requisito para teste para artefato implantado
- Publicar release notes a partir do diff da especificação, não do diff de código
Jobs to be done
- Como Product Owner, eu quero converter uma conversa com stakeholder em um draft de spec em até uma hora, para que o time nunca fique esperando por mim para iniciar a descoberta.
- Como Product Owner, eu quero todo requisito em formato EARS, para que os agentes possam parseá-lo sem interpretação.
- Como Product Owner, eu quero todo critério de aceitação em Given-When-Then, para que o QA Engineer possa gerar testes direto da spec.
- Como Product Owner, eu quero um link de rastreabilidade ao vivo de cada requisito para seu teste e seu artefato implantado, para que eu consiga responder a questões de auditoria em minutos.
- Como Product Owner, eu quero que a spec recuse merge quando a aceitação estiver ausente, para que o desvio de escopo seja pego antes de o código ser escrito.
- Como Product Owner, eu quero release notes geradas a partir do diff da spec, para que stakeholders vejam valor entregue, não commits enviados.
Dores antes da era AI-native
- Tickets ambíguos. Descrições em texto livre em um tracker forçam todo leitor a adivinhar a intenção. Developers implementam a interpretação mais fácil; QA testa a mais defensiva.
- Handoffs verbais. O escopo vive na memória da reunião. Quando a reunião termina, o escopo silenciosamente bifurca.
- Critérios de aceitação inventados na hora do review. Revisores negociam a definição de pronto depois que o código já foi escrito, então retrabalho é inevitável.
- Rastreabilidade construída à mão em planilhas. A matriz está obsoleta no dia em que é publicada, e os auditores sabem disso.
- Release notes escritas pelo release manager a partir de logs de commit. Stakeholders veem churn técnico, não outcomes de produto, e a confiança se deteriora.
Fluxo diário AI-native
O Product Owner opera um loop fixo todo dia. O loop usa primitivas do GitHub Copilot dentro do Visual Studio Code e Claude Code no terminal, além de um pequeno catálogo de MCPs validados para contexto externo.
Setup da manhã
- Abra o repositório no Visual Studio Code. GitHub Copilot Chat carrega o
AGENTS.mde as instruções escopadas da spec. - Puxe o último
maine abra a branch ativa da feature para a spec em andamento. - Revise inputs noturnos de stakeholders capturados em threads do Microsoft Teams e no Outlook via o Microsoft 365 Agents SDK MCP.
- Rode
/review-specno draft do dia anterior para capturar violações de EARS e aceitação ausente.
Execução no meio do dia
- Coleta de stakeholder. Invoque
/draft-speccom a transcrição da reunião ou thread do Teams. O agente Spec Scribe produz um primeiro draft com requisitos numerados e questões em aberto sinalizadas. - Conversão para EARS. Invoque
/earsifyem qualquer declaração em texto livre. O agente reescreve cada uma no formatoWHEN ... THE system SHALL ...e se recusa a emitir requisitos sem uma condição de disparo. - Vinculação de aceitação. Invoque
/link-acceptancepara anexar critérios Given-When-Then a todo requisito. O agente bloqueia a spec de ir para review até que todo requisito tenha pelo menos um critério. - Sincronização do backlog. Use o GitHub MCP ou o Azure DevOps MCP para criar ou atualizar work items que referenciem âncoras de seções da spec, não resumos em prosa.
Revisão no fim da tarde
- Invoque
/review-specpara rodar a varredura final de governança. O agente verifica testabilidade, contradições, duplicatas e requisitos órfãos. - Abra um pull request no
SPECIFICATION.md. GitHub Copilot Code Review comenta em problemas estruturais; stakeholders humanos aprovam o conteúdo. - Atualize a matriz de rastreabilidade. Um hook de post-merge regenera a matriz a partir das âncoras da spec, IDs de teste e registros de deploy no GitHub Actions.
- Publique o digest diário da spec no canal do Teams via Microsoft 365 Agents SDK, resumindo requisitos aceitos e questões em aberto.
Primitivas recomendadas
Agente
| Agente | Arquivo | Propósito |
|---|---|---|
spec-scribe | .github/agents/spec-scribe.agent.md | Escrever, earsify, revisar e vincular aceitação para o SPECIFICATION.md |
O Spec Scribe usa claude-sonnet-4-6 por padrão. Ferramentas: read, edit, search, grep, glob. Sem acesso a bash, porque a persona Product Owner nunca executa código. Extended thinking é habilitado apenas para /review-spec, onde a detecção de contradições se beneficia de raciocínio profundo.
Slash prompts
| Comando | Arquivo | Propósito |
|---|---|---|
/draft-spec | .github/prompts/draft-spec.prompt.md | Transformar um input cru de stakeholder em um draft numerado de spec |
/earsify | .github/prompts/earsify.prompt.md | Reescrever requisitos em texto livre na sintaxe EARS |
/review-spec | .github/prompts/review-spec.prompt.md | Varredura de governança para testabilidade, contradições, órfãos |
/link-acceptance | .github/prompts/link-acceptance.prompt.md | Anexar critérios Given-When-Then a todo requisito |
Instruções escopadas
applyTo com escopo reduz o custo em tokens em aproximadamente 68 por cento comparado a instruções globais.
Escopo (applyTo) | Arquivo | Propósito |
|---|---|---|
docs/specs/**/*.md | .github/instructions/specs.instructions.md | Formato EARS, numeração, âncoras e verbos vagos banidos |
docs/adr/**/*.md | .github/instructions/adr.instructions.md | Formato do registro de decisão quando uma spec exige uma escolha arquitetural |
docs/releases/**/*.md | .github/instructions/release-notes.instructions.md | Release notes geradas a partir do diff da spec, não do log de commits |
Hooks
Hooks custam zero tokens de LLM. São a camada de governança mais forte para especificações.
pre-commit: rejeitar qualquer arquivo de spec com um requisito sem trigger EARS ou um critério de aceitação órfãopost-commit: regenerar a matriz de rastreabilidade a partir das âncoras da spec e IDs de testepre-merge: bloquear o merge de qualquer mudança de spec que não inclua uma entrada de changelog e um work item vinculado
MCPs validados
| MCP | Propósito | Dono |
|---|---|---|
| GitHub MCP Server | Ler e atualizar GitHub Projects, issues e PRs para governança de backlog | GitHub (oficial) |
| Azure DevOps MCP Server | Ler e atualizar work items do Azure Boards quando o time usa Azure DevOps | Microsoft (oficial) |
| Microsoft Learn Docs MCP | Buscar documentação atualizada de produtos Microsoft ao escrever specs para features M365 ou Azure | Microsoft (oficial) |
| Microsoft 365 Agents SDK MCP | Puxar threads do Teams, decisões do Outlook e artefatos do SharePoint para dentro da coleta da spec | Microsoft (oficial) |
| Azure MCP Server | Consultar Application Insights e Azure Monitor para ancorar specs em comportamento de produção | Microsoft (oficial) |
Exemplos reais
Exemplo 1: escrever uma spec a partir de uma conversa no Teams
Entrada: Uma thread de 45 minutos no Microsoft Teams entre vendas e suporte propondo um fluxo de renovação de contrato self-service.
Invocação: /draft-spec com a thread exportada via o Microsoft 365 Agents SDK MCP.
Saída esperada:
- Um
docs/specs/contract-renewal/SPECIFICATION.mdcom seis requisitos EARS numerados, cada um seguido por critérios de aceitação Given-When-Then. - Uma issue do GitHub por requisito criada através do GitHub MCP, vinculada à âncora da spec.
- Uma seção de perguntas em aberto listando quatro pontos que exigem decisão antes da aprovação.
Exemplo 2: varredura de governança antes do merge
Entrada: Uma spec de 28 requisitos para um upgrade de billing, já earsified em uma passagem anterior.
Invocação: /review-spec.
Saída esperada:
- Um relatório de review sinalizando duas contradições entre os requisitos 7 e 14, uma duplicata entre 19 e 22, e três critérios de aceitação órfãos não anexados a nenhum requisito.
- Um comentário de pull request com sugestões vinculadas por âncoras.
- Um merge bloqueado até que o autor resolva as três categorias.
Anti-padrões
- Escrever specs como prosa. Parágrafos escondem contradições e não podem ser consumidos por agentes. Mitigação: enforçar EARS via o hook de
pre-commite o prompt/earsify. - Pular critérios de aceitação. Um requisito sem Given-When-Then não é testável. Mitigação:
/link-acceptancese recusa a fechar o loop, e o hook bloqueia o commit. - Itens de backlog sem âncoras de spec. Se o ticket não aponta para um requisito numerado, o escopo vai derivar. Mitigação: o GitHub MCP auto-injeta a URL da âncora na criação da issue.
- Release notes geradas a partir de commits. Stakeholders veem ruído técnico. Mitigação: release notes são geradas a partir do diff da spec via as instruções escopadas.
- Verbos ambíguos. Palavras como “suportar”, “tratar”, “melhorar” são banidas pelas instruções da spec. Mitigação: o hook de
pre-commitas rejeita.
KPIs e métricas de impacto
| KPI | Linha base | Meta | Medição |
|---|---|---|---|
| Lead time da spec, coleta até aprovada | 5 dias | < 1 dia | Timestamps de PR do SPECIFICATION.md no GitHub |
| Requisitos em formato EARS | 20 por cento | 100 por cento | Relatório do spec linter no GitHub Actions |
| Cobertura de aceitação, requisitos com Given-When-Then | 40 por cento | 100 por cento | Matriz de rastreabilidade |
| Taxa de mudança de escopo pós-aprovação | 35 por cento | < 10 por cento | Contagem de PRs de spec reabertos |
| Tempo de resposta a uma consulta de auditoria | 2 dias | < 1 hora | Log de consultas da matriz de rastreabilidade |
| Satisfação de stakeholder sobre clareza | Desconhecido | > 4.2 de 5 | Pesquisa trimestral via Microsoft Forms |
Maturidade em quatro níveis
| Nível | Nome | Marcadores |
|---|---|---|
| L1 | Manual | Tickets em prosa, sem EARS, sem aceitação, escopo negociado no review |
| L2 | Assistido | GitHub Copilot usado para polir o texto do ticket, ainda sem spec legível por máquina |
| L3 | Aumentado | Agente Spec Scribe, quatro slash prompts, instruções escopadas, um ou dois MCPs, EARS enforçado |
| L4 | Autônomo | Kit completo de primitivas, hooks enforçados, rastreabilidade auto-gerada, release notes a partir do diff da spec, digest de stakeholder automatizado |
Integração com outras personas
- Para o Requirements Engineer:
SPECIFICATION.mdaprovado com requisitos EARS numerados como input canônico para decomposição detalhada - Para o Business Manager: hooks de KPI em nível de requisito para que outcomes possam ser atados à história de valor
- Para o Enterprise Architect: cláusulas da spec que disparam um novo ADR ou invocam um princípio existente
- Para o Software Architect: superfície de contrato usada para derivar
CODEMAP.mde contratos de API - Para o QA Engineer: aceitação Given-When-Then como fonte direta de casos de teste
- Para o Developer: âncora da spec em todo pull request para implementação rastreável
- Para o Tech Writer: release notes geradas a partir do diff da spec, não do diff do commit
Glossário
- EARS: Easy Approach to Requirements Syntax. A forma canônica
WHEN ... THE system SHALL ...usada noSPECIFICATION.md. - Given-When-Then: formato de critério de aceitação que vincula uma pré-condição, uma ação e um outcome observável.
- Âncora da spec: âncora markdown estável sobre um ID de requisito, usada como alvo canônico de link a partir de issues, PRs e testes.
- Matriz de rastreabilidade: tabela gerada que mapeia cada requisito para seus testes, pull requests e artefatos implantados.
- Hipótese de outcome: o resultado de negócio mensurável que a feature deve produzir, distinto da lista de outputs.
- Backlog: a lista ordenada de work items no GitHub Projects ou Azure Boards, cada um vinculado a uma âncora da spec.
Referências
- Documentação do GitHub Projects — planejamento e acompanhamento de specs e backlog
- Documentação do Azure Boards — rastreio de work items quando o time usa Azure DevOps
- Documentação do GitHub Copilot — fonte autoritativa para features do Copilot, modo agent e instruções
- Visão geral do Microsoft 365 Agents SDK — integração com Teams e superfícies do Microsoft 365
- Referência de notação EARS, Microsoft Learn — orientação sobre qualidade de requisito e alinhamento arquitetural