Paula Silva Software Global Black Belt
LinkedIn
22 build · Implementation

DeveloperDeveloperDeveloper

Implementation, TDD, bug fix.Implementação, TDD, correção de bugs.Implementación, TDD, corrección de bugs.


The Developer is the persona that writes, fixes, and evolves code. In an AI-native SDLC, the Developer operates a stack of validated primitives, not a code editor.

Executive summary

The Developer turns an approved specification into working, tested, reviewed code that ships to production. In an AI-native SDLC, the Developer operates inside the Implementation phase with a fixed set of primitives: one implementation agent, four slash prompts, scoped instructions, schema-validated hooks, and a curated list of validated MCPs. The primary outputs are code changes, passing test suites, pull requests with traceable context, and updated documentation.

Role and responsibilities

Think of the Developer like a structural engineer on a construction site. The architect hands over drawings that satisfy the zoning constraints. The engineer does not rewrite the drawings, but they also do not execute them mechanically: they choose the concrete mix, the rebar layout, and the sequence of pours that make the structure stand up. In an AI-native SDLC the specification, architecture decisions, and acceptance criteria are upstream artifacts, and the Developer is accountable for translating them into code that survives production without rework.

Primary responsibilities:

  • Implement features described in SPECIFICATION.md using the EARS requirements and Given-When-Then acceptance criteria
  • Practice Test-Driven Development end-to-end, starting from the failing test suggested by the spec
  • Fix bugs with the understand-reproduce-fix-verify loop, never jumping to the fix
  • Review code from peers and AI agents with equal rigor
  • Update the CODEMAP.md and developer docs whenever a public API changes
  • Keep dependency hygiene, resolve vulnerabilities within SLA
  • Operate the Implementer agent and the /implement, /fix-bug, /tdd, /refactor prompts

Jobs to be done

  1. As a Developer, I want to convert an approved spec into a merged pull request within one working day, so that the team keeps a daily delivery cadence.
  2. As a Developer, I want the AI agent to write the failing test first, so that every feature has a machine-verifiable acceptance criterion.
  3. As a Developer, I want to reproduce a production bug in a local test, so that the fix is protected against regression.
  4. As a Developer, I want to refactor without changing behavior, so that the code base stays coherent as it grows.
  5. As a Developer, I want the PR description to be auto-generated from my changes, so that reviewers have full context without asking me.
  6. As a Developer, I want to know which dependency upgrade will break which test, so that security patches land without manual triage.

Pain points before AI-native

  1. Spec drift. The feature in the ticket is not the feature that shipped. Without a machine-readable spec linked to tests, every sprint silently redefines scope.
  2. Copy-paste debugging. Bugs are fixed by pattern matching on the stack trace instead of by reproducing the root cause. The same class of bug returns every quarter.
  3. Review fatigue. Reviewers cannot hold the whole system in their head, so they rubber-stamp or nitpick, never both at the same time.
  4. Test gaps invisible until production. Coverage reports lie because they count lines, not branches or behaviors. Risk lives in the untested 15 percent.
  5. Documentation lag. The README.md and API docs describe last quarter’s architecture. New team members ramp slowly and ask senior engineers the same questions every week.

AI-native daily workflow

The Developer operates a fixed loop each day. The loop uses GitHub Copilot primitives inside Visual Studio Code and Claude Code at the terminal, plus a small catalog of validated MCPs for external context.

Morning setup

  1. Pull the latest main and rebase the feature branch.
  2. Open the repo in Visual Studio Code. GitHub Copilot Chat loads the AGENTS.md and the scoped .github/instructions/*.instructions.md.
  3. Run /audit-context from the Technical Lead kit (installed as a dependency) to confirm the context budget is under threshold.
  4. Read the active ticket, open the linked SPECIFICATION.md, confirm the EARS requirements and acceptance criteria.

Core work cycle

Each work cycle is a single unit of change, typically 1 to 4 hours of focused work.

  1. Spec to failing test. Invoke /tdd with the acceptance criteria. The Implementer agent writes a failing test that encodes the Given-When-Then and refuses to proceed until the test is committed.
  2. Implement. Invoke /implement. The agent writes the minimum code to pass the failing test. Copilot inline completions handle boilerplate; the developer owns decisions.
  3. Self-review. Run the test suite, lint, type-check. If any hook fires, fix before moving on. Hooks are zero-token governance.
  4. Refactor. Invoke /refactor to improve structure without changing behavior. The agent runs the test suite before and after to prove behavioral equivalence.
  5. Pull request. The PR description is composed from the commit messages and the linked spec. Copilot Code Review and the Quality Reviewer agent scan the diff.

Bug cycle

When a bug is reported, the Developer invokes /fix-bug, which runs the understand-reproduce-fix-verify loop:

  1. Understand. Read the error, the stack trace, and the related code. The agent summarizes the hypothesis.
  2. Reproduce. Write a failing test that reproduces the bug. No fix is allowed before this step.
  3. Fix. Minimum change to make the failing test pass.
  4. Verify. Run the full test suite, not just the new test. Confirm no regression.

End of day

  1. Push the branch. GitHub Actions runs the CI pipeline.
  2. Update the ticket with the link to the PR and the tests that encode the acceptance criteria.
  3. If the feature touched a public API, verify the CODEMAP.md and the generated docs are up to date.

Agents

AgentFilePurpose
implementer.github/agents/implementer.agent.mdImplementation, TDD, bug fixing with understand-reproduce-fix-verify

The Implementer agent uses claude-sonnet-4-6 by default. It holds tools read, edit, search, grep, glob, bash. Extended thinking is disabled because iterative implementation tasks lose quality with deep think loops.

Prompts

CommandFilePurpose
/implement.github/prompts/implement.prompt.mdImplement a feature against a spec, minimum code to pass the test
/fix-bug.github/prompts/fix-bug.prompt.mdFour-step bug fix loop, never skips reproduction
/tdd.github/prompts/tdd.prompt.mdWrite the failing test first, enforced
/refactor.github/prompts/refactor.prompt.mdBehavior-preserving structural improvement

Instructions

Scoped applyTo reduces token cost by approximately 68 percent compared to global instructions.

Scope (applyTo)FilePurpose
src/**/*.ts,src/**/*.tsx.github/instructions/typescript.instructions.mdTypeScript conventions, strict mode, no any
tests/**/*.github/instructions/tests.instructions.mdAAA pattern, meaningful names, no brittle snapshots
**/*.sql.github/instructions/sql.instructions.mdMigrations are up-and-down, no schema drift

Skills

Skills are lazy-loaded, so the developer can install many and pay tokens only for the ones that trigger.

  • tdd-enforcer: refuses to write implementation code if the failing test is missing
  • dep-risk-scan: calls the GitHub MCP to read Dependabot alerts and CodeQL results on every dependency upgrade

Hooks

Hooks cost zero LLM tokens. They are the strongest governance layer.

  • pre-commit: lint, type-check, secret scan
  • post-commit: regenerate CODEMAP.md if public API surfaces changed
  • pre-push: run the fast test lane

Validated MCPs

Every MCP below is registered in the MCP catalog. Do not reference any MCP that is not in the catalog.

MCPStatusUse in this persona
GitHub MCP ServerOfficialRead the repo, manage PRs and issues, read Actions runs
Microsoft Learn Docs MCPOfficialFetch current Microsoft documentation when implementing on Azure stacks
Azure MCP ServerOfficial (Microsoft)Pull Application Insights and Azure Monitor errors into the fix-bug loop; query Azure resources during implementation
Azure DevOps MCP ServerOfficial (Microsoft)Read the active work item from Azure Boards, update it after PR merge (when the team uses Azure DevOps instead of GitHub Issues)
Playwright MCPOfficial (Microsoft)Drive end-to-end tests against the running feature
Microsoft 365 Agents SDK MCPOfficial (Microsoft)Integrate the feature with Teams, Copilot, and Microsoft 365 surfaces when the product requires it

Real examples

Scenario A: implement a new endpoint

Input: SPECIFICATION.md contains the EARS requirement WHEN a user submits a rental claim with a valid contract ID, THE system SHALL return the claim status within 300 ms.

Invocation: /tdd followed by /implement.

Expected output:

  1. A failing integration test tests/claims/returns-status-under-300ms.spec.ts that asserts response time and payload shape.
  2. A new route handler src/claims/status.controller.ts with minimal code to pass the test.
  3. A PR titled feat(claims): return claim status within 300 ms linked to the spec section and the new test.

Scenario B: fix a production bug

Input: An Application Insights alert (via Azure Monitor) reports a null pointer in ContractService.findById triggered by concurrent requests.

Invocation: /fix-bug.

Expected output:

  1. A failing unit test tests/contracts/find-by-id-concurrency.spec.ts that reproduces the race condition.
  2. A fix in ContractService that introduces optimistic locking, with no other behavioral change.
  3. A PR titled fix(contracts): eliminate race in ContractService.findById linked to the Application Insights incident and the new test.
  4. A post-merge resolution of the Application Insights alert with the PR URL recorded in the incident timeline.

Scenario C: behavior-preserving refactor

Input: A monolithic orders.service.ts of 1,200 lines needs to be split into cohesive modules.

Invocation: /refactor.

Expected output:

  1. The full test suite runs green before the refactor.
  2. orders.service.ts is split into orders/pricing.ts, orders/validation.ts, orders/persistence.ts with identical public surface.
  3. The full test suite runs green after the refactor.
  4. A PR titled refactor(orders): split service into pricing, validation, persistence with a diff summary and a test parity report.

Anti-patterns

  1. Skipping the failing test. Writing the implementation first and adding a test that happens to pass defeats TDD. Mitigation: the tdd-enforcer skill refuses to generate implementation code when no failing test exists.
  2. Trusting coverage percentage as the signal for quality. Line coverage is a vanity metric. Mitigation: track mutation score or branch coverage, and include negative-path assertions in every test file.
  3. Letting Copilot choose naming without context. Names hallucinated from patterns outside the repo produce inconsistent code. Mitigation: scope instructions with applyTo and teach Copilot the domain vocabulary.
  4. One-shot large refactors. Refactors that touch dozens of files at once cannot be reviewed safely. Mitigation: split into a sequence of small, behavior-preserving commits, each green on the test suite.
  5. Ignoring hooks. A pre-commit hook that fails is a gift, not a blocker. Mitigation: treat hook output as the first review; fix before committing.

KPIs and impact metrics

The Developer persona is evaluated with a mix of DORA, SPACE, and Agentic DevOps metrics.

MetricBaseline (manual)Target (agentic)Measurement
PR lead time3 days< 1 dayGitHub API
Deployment frequencyWeeklyMultiple per dayGitHub Deployments
Change failure rate20 percent< 5 percentApplication Insights or incidents post deploy
Mean time to restore4 hours< 1 hourIncident tracker
Test suite reliability85 percent> 99 percentFlake rate
Mutation scoreUnknown> 70 percentStryker, Pitest, or equivalent
Rework rate30 percent< 10 percentPercent of merged code rewritten within 30 days
Token efficiencyN/A< 1M tokens per merged PRCopilot usage report

Maturity in four levels

LevelNameMarkers
L1ManualCopy-paste from Stack Overflow, no standard prompt, no scoped instructions, no MCPs
L2AssistedGitHub Copilot autocomplete only, no agent, AGENTS.md missing or generic
L3AugmentedOne Implementer agent, four slash prompts, scoped instructions, one or two MCPs, TDD workflow
L4AgenticFull primitives kit, hooks enforced, validated MCPs in the catalog only, PR narrative auto-generated, maturity scorecard above 80 percent

Integration with other personas

Handoffs:

  • From Technical Lead: routing table, scoped instructions, AGENTS.md, project baseline
  • From Software Architect: CODEMAP.md, IMPLEMENTATION_PLAN.md with parallel markers, API contracts
  • To QA Engineer: merged PR with passing tests, test matrix updated
  • To Tech Writer: updated CODEMAP.md, new public API surfaces, changelog entry
  • To SRE: deployment-ready artifact, feature flag configuration, runbook updates

Glossary

  • Agent: a configured LLM role with tools, instructions, and a defined output shape. Lives in .github/agents/<name>.agent.md.
  • Prompt: a reusable slash command that invokes an agent with a specific task. Lives in .github/prompts/<name>.prompt.md.
  • Instructions: scoped guidance applied by pattern match on file paths via applyTo. Lives in .github/instructions/<name>.instructions.md.
  • Skill: a lazy-loaded capability that activates on keyword match. Costs tokens only when triggered.
  • Hook: a zero-token rule enforced at a specific lifecycle event (pre-commit, post-commit, pre-push, pre-merge).
  • MCP: Model Context Protocol server that exposes external systems (GitHub, Azure, Azure DevOps, etc.) to the agent.
  • EARS: Easy Approach to Requirements Syntax. Format used in SPECIFICATION.md.
  • TDD: Test-Driven Development. Write the failing test first, then the minimum code to pass it.
  • CODEMAP: A generated document that describes the program skeleton for the LLM and for humans.

References

O Developer é a persona que escreve, corrige e evolui código. Em um SDLC AI-nativo, o Developer opera uma pilha de primitivas validadas, não um editor de código.

Resumo executivo

O Developer transforma uma especificação aprovada em código funcional, testado e revisado que vai para produção. Em um SDLC AI-nativo, o Developer opera dentro da fase de Implementação com um conjunto fixo de primitivas: um agente de implementação, quatro slash prompts, instruções com escopo, hooks validados por schema e uma lista curada de MCPs validados. As saídas primárias são mudanças de código, suítes de teste passando, pull requests com contexto rastreável e documentação atualizada.

Papel e responsabilidades

Pense no Developer como um engenheiro estrutural em um canteiro de obras. O arquiteto entrega as plantas que satisfazem as restrições de zoneamento. O engenheiro não reescreve as plantas, mas também não as executa mecanicamente: ele escolhe a mistura de concreto, o arranjo das armaduras e a sequência das concretagens que fazem a estrutura ficar em pé. Em um SDLC AI-nativo, a especificação, as decisões de arquitetura e os critérios de aceitação são artefatos upstream, e o Developer é responsável por traduzi-los em código que sobrevive em produção sem retrabalho.

Responsabilidades primárias:

  • Implementar features descritas no SPECIFICATION.md usando requisitos EARS e critérios de aceitação Given-When-Then
  • Praticar Test-Driven Development ponta a ponta, começando pelo teste em falha sugerido pela spec
  • Corrigir bugs com o loop entender-reproduzir-corrigir-verificar, nunca pulando para a correção
  • Revisar código de pares e agentes de IA com igual rigor
  • Atualizar o CODEMAP.md e docs de desenvolvedor sempre que uma API pública mudar
  • Manter higiene de dependências, resolver vulnerabilidades dentro do SLA
  • Operar o agente Implementer e os prompts /implement, /fix-bug, /tdd, /refactor

Jobs to be done

  1. Como Developer, quero converter uma spec aprovada em pull request merged em um dia útil, para que o time mantenha a cadência diária de entrega.
  2. Como Developer, quero que o agente de IA escreva primeiro o teste em falha, para que toda feature tenha um critério de aceitação verificável por máquina.
  3. Como Developer, quero reproduzir um bug de produção em um teste local, para que a correção esteja protegida contra regressão.
  4. Como Developer, quero refatorar sem mudar comportamento, para que a base de código permaneça coerente à medida que cresce.
  5. Como Developer, quero que a descrição do PR seja auto-gerada a partir das minhas mudanças, para que os revisores tenham contexto completo sem me perguntar.
  6. Como Developer, quero saber qual atualização de dependência vai quebrar qual teste, para que patches de segurança entrem sem triagem manual.

Dores antes do AI-nativo

  1. Deriva de spec. A feature no ticket não é a feature que subiu. Sem uma spec legível por máquina ligada a testes, cada sprint redefine silenciosamente o escopo.
  2. Debugging por copy-paste. Bugs são corrigidos por pattern matching na stack trace, não pela reprodução da causa raiz. A mesma classe de bug volta a cada trimestre.
  3. Fadiga de revisão. Revisores não conseguem manter todo o sistema na cabeça, então ou aprovam sem ler ou implicam em detalhes, nunca os dois ao mesmo tempo.
  4. Gaps de teste invisíveis até produção. Relatórios de cobertura mentem porque contam linhas, não branches ou comportamentos. O risco mora nos 15 por cento não testados.
  5. Atraso de documentação. O README.md e os docs de API descrevem a arquitetura do trimestre passado. Novos membros do time levam semanas para pegar ritmo.

Fluxo diário AI-nativo

O Developer 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 matinal

  1. Puxe a última main e rebase a branch da feature.
  2. Abra o repo no Visual Studio Code. GitHub Copilot Chat carrega o AGENTS.md e as .github/instructions/*.instructions.md com escopo.
  3. Rode /audit-context do kit do Technical Lead (instalado como dependência) para confirmar que o orçamento de contexto está abaixo do limiar.
  4. Leia o ticket ativo, abra o SPECIFICATION.md linkado, confirme os requisitos EARS e critérios de aceitação.

Ciclo de trabalho principal

Cada ciclo de trabalho é uma unidade de mudança, tipicamente de 1 a 4 horas de trabalho focado.

  1. Spec para teste em falha. Invoque /tdd com os critérios de aceitação. O agente Implementer escreve um teste em falha que codifica o Given-When-Then e se recusa a prosseguir até o teste ser commitado.
  2. Implementar. Invoque /implement. O agente escreve o mínimo de código para passar o teste em falha. Completions inline do Copilot cuidam do boilerplate; o developer é dono das decisões.
  3. Auto-revisão. Rode a suíte de testes, lint, type-check. Se algum hook disparar, corrija antes de seguir. Hooks são governança de zero tokens.
  4. Refatorar. Invoque /refactor para melhorar a estrutura sem mudar comportamento. O agente roda a suíte antes e depois para provar equivalência comportamental.
  5. Pull request. A descrição do PR é composta a partir das mensagens de commit e da spec linkada. Copilot Code Review e o agente Quality Reviewer escaneiam o diff.

Ciclo de bug

Quando um bug é reportado, o Developer invoca /fix-bug, que roda o loop entender-reproduzir-corrigir-verificar:

  1. Entender. Leia o erro, a stack trace e o código relacionado. O agente resume a hipótese.
  2. Reproduzir. Escreva um teste em falha que reproduz o bug. Nenhuma correção é permitida antes deste passo.
  3. Corrigir. Mudança mínima para fazer o teste em falha passar.
  4. Verificar. Rode a suíte completa, não só o teste novo. Confirme que não há regressão.

Fim do dia

  1. Dê push na branch. GitHub Actions roda o pipeline de CI.
  2. Atualize o ticket com o link para o PR e os testes que codificam os critérios de aceitação.
  3. Se a feature tocou uma API pública, verifique que o CODEMAP.md e os docs gerados estão atualizados.

Primitivas recomendadas

Agentes

AgenteArquivoPropósito
implementer.github/agents/implementer.agent.mdImplementação, TDD, correção de bugs com entender-reproduzir-corrigir-verificar

O agente Implementer usa claude-sonnet-4-6 por padrão. Detém as ferramentas read, edit, search, grep, glob, bash. Extended thinking está desabilitado porque tarefas iterativas de implementação perdem qualidade com loops de deep think.

Prompts

ComandoArquivoPropósito
/implement.github/prompts/implement.prompt.mdImplementar uma feature contra uma spec, mínimo código para passar o teste
/fix-bug.github/prompts/fix-bug.prompt.mdLoop de 4 passos para correção de bug, nunca pula a reprodução
/tdd.github/prompts/tdd.prompt.mdEscrever primeiro o teste em falha, obrigatório
/refactor.github/prompts/refactor.prompt.mdMelhoria estrutural preservando comportamento

Instruções

applyTo com escopo reduz o custo em tokens em aproximadamente 68 por cento comparado a instruções globais.

Escopo (applyTo)ArquivoPropósito
src/**/*.ts,src/**/*.tsx.github/instructions/typescript.instructions.mdConvenções TypeScript, strict mode, sem any
tests/**/*.github/instructions/tests.instructions.mdPadrão AAA, nomes significativos, sem snapshots frágeis
**/*.sql.github/instructions/sql.instructions.mdMigrações up-and-down, sem schema drift

Skills

Skills são carregadas sob demanda, então o developer pode instalar muitas e pagar tokens só pelas que disparam.

  • tdd-enforcer: se recusa a escrever código de implementação se o teste em falha estiver ausente
  • dep-risk-scan: chama o GitHub MCP para ler alertas do Dependabot e resultados do CodeQL em toda atualização de dependência

Hooks

Hooks custam zero tokens de LLM. São a camada de governança mais forte.

  • pre-commit: lint, type-check, scan de segredos
  • post-commit: regenera o CODEMAP.md se a superfície de API pública mudou
  • pre-push: roda a fast test lane

MCPs validados

Todo MCP abaixo está registrado no catálogo de MCPs. Não referencie nenhum MCP que não esteja no catálogo.

MCPStatusUso nesta persona
GitHub MCP ServerOficialLer o repo, gerenciar PRs e issues, ler runs do Actions
Microsoft Learn Docs MCPOficialPuxar documentação atualizada da Microsoft ao implementar em stacks Azure
Azure MCP ServerOficial (Microsoft)Trazer erros do Application Insights e Azure Monitor para o loop de fix-bug; consultar recursos Azure durante a implementação
Azure DevOps MCP ServerOficial (Microsoft)Ler o work item ativo no Azure Boards e atualizá-lo após o merge do PR (quando o time usa Azure DevOps em vez de GitHub Issues)
Microsoft 365 Agents SDK MCPOficial (Microsoft)Integrar a feature com Teams, Copilot e outras superfícies do Microsoft 365 quando o produto exigir
Playwright MCPOficial (Microsoft)Dirigir testes end-to-end contra a feature rodando

Exemplos reais

Cenário A: implementar um novo endpoint

Entrada: SPECIFICATION.md contém o requisito EARS WHEN um usuário submete um sinistro de aluguel com um ID de contrato válido, THE system SHALL retornar o status do sinistro em até 300 ms.

Invocação: /tdd seguido de /implement.

Saída esperada:

  1. Um teste de integração em falha tests/claims/returns-status-under-300ms.spec.ts que assegura tempo de resposta e shape do payload.
  2. Um novo route handler src/claims/status.controller.ts com código mínimo para passar o teste.
  3. Um PR intitulado feat(claims): return claim status within 300 ms linkado à seção da spec e ao teste novo.

Cenário B: corrigir um bug de produção

Entrada: Um alerta do Application Insights (via Azure Monitor) reporta null pointer em ContractService.findById disparado por requisições concorrentes.

Invocação: /fix-bug.

Saída esperada:

  1. Um teste unitário em falha tests/contracts/find-by-id-concurrency.spec.ts que reproduz a race condition.
  2. Uma correção em ContractService que introduz optimistic locking, sem nenhuma outra mudança comportamental.
  3. Um PR intitulado fix(contracts): eliminate race in ContractService.findById linkado ao incidente do Application Insights e ao teste novo.
  4. Uma resolução pós-merge do alerta do Application Insights com a URL do PR registrada na linha do tempo do incidente.

Cenário C: refactor preservando comportamento

Entrada: Um orders.service.ts monolítico de 1.200 linhas precisa ser dividido em módulos coesos.

Invocação: /refactor.

Saída esperada:

  1. A suíte de testes completa roda verde antes do refactor.
  2. orders.service.ts é dividido em orders/pricing.ts, orders/validation.ts, orders/persistence.ts com superfície pública idêntica.
  3. A suíte de testes completa roda verde depois do refactor.
  4. Um PR intitulado refactor(orders): split service into pricing, validation, persistence com resumo do diff e relatório de paridade de testes.

Anti-padrões

  1. Pular o teste em falha. Escrever a implementação primeiro e adicionar um teste que por acaso passa derrota o TDD. Mitigação: o skill tdd-enforcer se recusa a gerar código de implementação quando não existe teste em falha.
  2. Confiar em percentual de cobertura como sinal de qualidade. Cobertura de linha é métrica de vaidade. Mitigação: trackeie mutation score ou branch coverage, e inclua asserções de caminho negativo em todo arquivo de teste.
  3. Deixar o Copilot escolher nomes sem contexto. Nomes alucinados a partir de padrões de fora do repo produzem código inconsistente. Mitigação: dê escopo nas instruções com applyTo e ensine o vocabulário de domínio ao Copilot.
  4. Refactors grandes one-shot. Refactors que tocam dezenas de arquivos de uma vez não podem ser revisados com segurança. Mitigação: divida em uma sequência de commits pequenos, preservando comportamento, cada um verde na suíte.
  5. Ignorar hooks. Um pre-commit hook falhando é um presente, não um bloqueador. Mitigação: trate a saída do hook como a primeira revisão; corrija antes de commitar.

KPIs e métricas de impacto

A persona Developer é avaliada com uma mistura de DORA, SPACE e métricas Agentic DevOps.

MétricaBaseline (manual)Alvo (agêntico)Medição
Lead time de PR3 dias< 1 diaGitHub API
Frequência de deploySemanalVárias por diaGitHub Deployments
Taxa de falha de mudança20 por cento< 5 por centoApplication Insights ou incidentes pós-deploy
Tempo médio de restauração4 horas< 1 horaRastreador de incidentes
Confiabilidade da suíte85 por cento> 99 por centoFlake rate
Mutation scoreDesconhecido> 70 por centoStryker, Pitest ou equivalente
Taxa de retrabalho30 por cento< 10 por centoPercentual de código merged reescrito em 30 dias
Eficiência de tokensN/A< 1M tokens por PR mergedRelatório de uso do Copilot

Maturidade em quatro níveis

NívelNomeMarcadores
L1ManualCopy-paste de Stack Overflow, sem prompt padrão, sem instruções com escopo, sem MCPs
L2AssistidoApenas autocomplete do GitHub Copilot, sem agente, AGENTS.md ausente ou genérico
L3AumentadoUm agente Implementer, quatro slash prompts, instruções com escopo, um ou dois MCPs, fluxo TDD
L4AgênticoKit completo de primitivas, hooks enforçados, MCPs validados somente do catálogo, narrativa de PR auto-gerada, scorecard de maturidade acima de 80 por cento

Integração com outras personas

Entregas:

  • Do Technical Lead: tabela de roteamento, instruções com escopo, AGENTS.md, baseline do projeto
  • Do Software Architect: CODEMAP.md, IMPLEMENTATION_PLAN.md com marcadores paralelos, contratos de API
  • Para QA Engineer: PR merged com testes passando, matriz de testes atualizada
  • Para Tech Writer: CODEMAP.md atualizado, novas superfícies de API pública, entrada no changelog
  • Para SRE: artefato pronto para deploy, configuração de feature flag, atualizações de runbook

Glossário

  • Agente: um papel de LLM configurado com ferramentas, instruções e um shape de saída definido. Vive em .github/agents/<nome>.agent.md.
  • Prompt: um slash command reutilizável que invoca um agente com uma tarefa específica. Vive em .github/prompts/<nome>.prompt.md.
  • Instruções: orientação com escopo aplicada por pattern match em paths de arquivo via applyTo. Vive em .github/instructions/<nome>.instructions.md.
  • Skill: capacidade carregada sob demanda que ativa por match de palavra-chave. Custa tokens apenas quando dispara.
  • Hook: regra de zero tokens enforçada em um evento específico de ciclo de vida (pre-commit, post-commit, pre-push, pre-merge).
  • MCP: servidor Model Context Protocol que expõe sistemas externos (GitHub, Azure, Azure DevOps, etc.) ao agente.
  • EARS: Easy Approach to Requirements Syntax. Formato usado no SPECIFICATION.md.
  • TDD: Test-Driven Development. Escreva primeiro o teste em falha, depois o mínimo de código para passá-lo.
  • CODEMAP: Documento gerado que descreve o esqueleto do programa para o LLM e para humanos.

Referências

El Developer es la persona que escribe, corrige y evoluciona código. En un SDLC AI-nativo, el Developer opera una pila de primitivas validadas, no un editor de código.

Resumen ejecutivo

El Developer convierte una especificación aprobada en código funcional, probado y revisado que llega a producción. En un SDLC AI-nativo, el Developer opera dentro de la fase de Implementación con un conjunto fijo de primitivas: un agente de implementación, cuatro slash prompts, instrucciones con alcance, hooks validados por schema y una lista curada de MCPs validados. Las salidas primarias son cambios de código, suites de prueba que pasan, pull requests con contexto rastreable y documentación actualizada.

Rol y responsabilidades

Piensa en el Developer como un ingeniero estructural en una obra. El arquitecto entrega los planos que satisfacen las restricciones de zonificación. El ingeniero no reescribe los planos, pero tampoco los ejecuta mecánicamente: elige la mezcla de concreto, la disposición del refuerzo y la secuencia de vertidos que hacen que la estructura se mantenga en pie. En un SDLC AI-nativo, la especificación, las decisiones de arquitectura y los criterios de aceptación son artefactos upstream, y el Developer es responsable de traducirlos a código que sobreviva en producción sin retrabajo.

Responsabilidades primarias:

  • Implementar features descritas en SPECIFICATION.md usando requisitos EARS y criterios de aceptación Given-When-Then
  • Practicar Test-Driven Development de punta a punta, comenzando por la prueba en falla sugerida por la spec
  • Corregir bugs con el loop entender-reproducir-corregir-verificar, nunca saltando a la corrección
  • Revisar código de pares y agentes de IA con el mismo rigor
  • Actualizar el CODEMAP.md y docs de desarrollador siempre que cambie una API pública
  • Mantener higiene de dependencias, resolver vulnerabilidades dentro del SLA
  • Operar el agente Implementer y los prompts /implement, /fix-bug, /tdd, /refactor

Jobs to be done

  1. Como Developer, quiero convertir una spec aprobada en un pull request mergeado en un día hábil, para que el equipo mantenga la cadencia diaria de entrega.
  2. Como Developer, quiero que el agente de IA escriba primero la prueba en falla, para que cada feature tenga un criterio de aceptación verificable por máquina.
  3. Como Developer, quiero reproducir un bug de producción en una prueba local, para que la corrección esté protegida contra regresión.
  4. Como Developer, quiero refactorizar sin cambiar comportamiento, para que la base de código permanezca coherente a medida que crece.
  5. Como Developer, quiero que la descripción del PR sea auto-generada a partir de mis cambios, para que los revisores tengan contexto completo sin preguntarme.
  6. Como Developer, quiero saber qué actualización de dependencia va a romper qué prueba, para que los parches de seguridad entren sin triage manual.

Dolores antes del AI-nativo

  1. Deriva de spec. La feature en el ticket no es la feature que salió. Sin una spec legible por máquina ligada a pruebas, cada sprint redefine silenciosamente el alcance.
  2. Debugging por copy-paste. Los bugs se corrigen por pattern matching en la stack trace, no reproduciendo la causa raíz. La misma clase de bug vuelve cada trimestre.
  3. Fatiga de revisión. Los revisores no pueden mantener todo el sistema en la cabeza, así que o aprueban sin leer o se quejan de detalles, nunca ambas a la vez.
  4. Gaps de prueba invisibles hasta producción. Los reportes de cobertura mienten porque cuentan líneas, no branches ni comportamientos. El riesgo vive en el 15 por ciento no probado.
  5. Retraso de documentación. El README.md y los docs de API describen la arquitectura del trimestre pasado. Los nuevos miembros del equipo tardan semanas en ponerse al día.

Flujo diario AI-nativo

El Developer opera un loop fijo cada día. El loop usa primitivas de GitHub Copilot dentro de Visual Studio Code y Claude Code en la terminal, además de un pequeño catálogo de MCPs validados para contexto externo.

Setup matinal

  1. Trae la última main y haz rebase de la branch de la feature.
  2. Abre el repo en Visual Studio Code. GitHub Copilot Chat carga el AGENTS.md y las .github/instructions/*.instructions.md con alcance.
  3. Ejecuta /audit-context del kit del Technical Lead (instalado como dependencia) para confirmar que el presupuesto de contexto está bajo el umbral.
  4. Lee el ticket activo, abre el SPECIFICATION.md enlazado, confirma los requisitos EARS y criterios de aceptación.

Ciclo de trabajo principal

Cada ciclo de trabajo es una unidad de cambio, típicamente de 1 a 4 horas de trabajo enfocado.

  1. Spec a prueba en falla. Invoca /tdd con los criterios de aceptación. El agente Implementer escribe una prueba en falla que codifica el Given-When-Then y se rehúsa a avanzar hasta que la prueba esté commiteada.
  2. Implementar. Invoca /implement. El agente escribe el mínimo código para pasar la prueba en falla. Los completions inline de Copilot manejan el boilerplate; el developer es dueño de las decisiones.
  3. Auto-revisión. Ejecuta la suite de pruebas, lint, type-check. Si algún hook dispara, corrige antes de seguir. Los hooks son gobernanza de cero tokens.
  4. Refactorizar. Invoca /refactor para mejorar la estructura sin cambiar el comportamiento. El agente ejecuta la suite antes y después para demostrar equivalencia comportamental.
  5. Pull request. La descripción del PR se compone a partir de los mensajes de commit y la spec enlazada. Copilot Code Review y el agente Quality Reviewer escanean el diff.

Ciclo de bug

Cuando se reporta un bug, el Developer invoca /fix-bug, que ejecuta el loop entender-reproducir-corregir-verificar:

  1. Entender. Lee el error, la stack trace y el código relacionado. El agente resume la hipótesis.
  2. Reproducir. Escribe una prueba en falla que reproduce el bug. No se permite corrección antes de este paso.
  3. Corregir. Cambio mínimo para hacer pasar la prueba en falla.
  4. Verificar. Ejecuta la suite completa, no solo la prueba nueva. Confirma que no haya regresión.

Fin del día

  1. Haz push de la branch. GitHub Actions ejecuta el pipeline de CI.
  2. Actualiza el ticket con el enlace al PR y las pruebas que codifican los criterios de aceptación.
  3. Si la feature tocó una API pública, verifica que el CODEMAP.md y los docs generados estén actualizados.

Primitivas recomendadas

Agentes

AgenteArchivoPropósito
implementer.github/agents/implementer.agent.mdImplementación, TDD, corrección de bugs con entender-reproducir-corregir-verificar

El agente Implementer usa claude-sonnet-4-6 por defecto. Mantiene las herramientas read, edit, search, grep, glob, bash. Extended thinking está deshabilitado porque las tareas iterativas de implementación pierden calidad con loops de deep think.

Prompts

ComandoArchivoPropósito
/implement.github/prompts/implement.prompt.mdImplementar una feature contra una spec, mínimo código para pasar la prueba
/fix-bug.github/prompts/fix-bug.prompt.mdLoop de 4 pasos para corrección de bug, nunca salta la reproducción
/tdd.github/prompts/tdd.prompt.mdEscribir primero la prueba en falla, obligatorio
/refactor.github/prompts/refactor.prompt.mdMejora estructural preservando el comportamiento

Instrucciones

applyTo con alcance reduce el costo en tokens aproximadamente un 68 por ciento comparado con instrucciones globales.

Alcance (applyTo)ArchivoPropósito
src/**/*.ts,src/**/*.tsx.github/instructions/typescript.instructions.mdConvenciones TypeScript, strict mode, sin any
tests/**/*.github/instructions/tests.instructions.mdPatrón AAA, nombres significativos, sin snapshots frágiles
**/*.sql.github/instructions/sql.instructions.mdMigraciones up-and-down, sin schema drift

Skills

Los skills se cargan bajo demanda, así el developer puede instalar muchos y pagar tokens solo por los que disparan.

  • tdd-enforcer: se rehúsa a escribir código de implementación si la prueba en falla está ausente
  • dep-risk-scan: llama al GitHub MCP para leer alertas de Dependabot y resultados de CodeQL en cada actualización de dependencia

Hooks

Los hooks cuestan cero tokens de LLM. Son la capa de gobernanza más fuerte.

  • pre-commit: lint, type-check, scan de secretos
  • post-commit: regenera el CODEMAP.md si la superficie de API pública cambió
  • pre-push: ejecuta la fast test lane

MCPs validados

Cada MCP abajo está registrado en el catálogo de MCPs. No hagas referencia a ningún MCP que no esté en el catálogo.

MCPEstadoUso en esta persona
GitHub MCP ServerOficialLeer el repo, gestionar PRs e issues, leer runs de Actions
Microsoft Learn Docs MCPOficialTraer documentación actualizada de Microsoft al implementar en stacks Azure
Azure MCP ServerOficial (Microsoft)Traer errores de Application Insights y Azure Monitor al loop de fix-bug; consultar recursos Azure durante la implementación
Azure DevOps MCP ServerOficial (Microsoft)Leer el work item activo en Azure Boards y actualizarlo tras el merge del PR (cuando el equipo usa Azure DevOps en lugar de GitHub Issues)
Microsoft 365 Agents SDK MCPOficial (Microsoft)Integrar la feature con Teams, Copilot y otras superficies de Microsoft 365 cuando el producto lo requiera
Playwright MCPOficial (Microsoft)Dirigir pruebas end-to-end contra la feature corriendo

Ejemplos reales

Escenario A: implementar un nuevo endpoint

Entrada: SPECIFICATION.md contiene el requisito EARS WHEN un usuario envía un reclamo de alquiler con un ID de contrato válido, THE system SHALL devolver el estado del reclamo en menos de 300 ms.

Invocación: /tdd seguido de /implement.

Salida esperada:

  1. Una prueba de integración en falla tests/claims/returns-status-under-300ms.spec.ts que asegura tiempo de respuesta y shape del payload.
  2. Un nuevo route handler src/claims/status.controller.ts con código mínimo para pasar la prueba.
  3. Un PR titulado feat(claims): return claim status within 300 ms enlazado a la sección de la spec y a la prueba nueva.

Escenario B: corregir un bug de producción

Entrada: Una alerta de Application Insights (vía Azure Monitor) reporta null pointer en ContractService.findById disparado por solicitudes concurrentes.

Invocación: /fix-bug.

Salida esperada:

  1. Una prueba unitaria en falla tests/contracts/find-by-id-concurrency.spec.ts que reproduce la race condition.
  2. Una corrección en ContractService que introduce optimistic locking, sin ningún otro cambio comportamental.
  3. Un PR titulado fix(contracts): eliminate race in ContractService.findById enlazado al incidente de Application Insights y a la prueba nueva.
  4. Una resolución post-merge de la alerta de Application Insights con la URL del PR registrada en la línea de tiempo del incidente.

Escenario C: refactor preservando comportamiento

Entrada: Un orders.service.ts monolítico de 1.200 líneas necesita dividirse en módulos cohesivos.

Invocación: /refactor.

Salida esperada:

  1. La suite de pruebas completa corre verde antes del refactor.
  2. orders.service.ts se divide en orders/pricing.ts, orders/validation.ts, orders/persistence.ts con superficie pública idéntica.
  3. La suite de pruebas completa corre verde después del refactor.
  4. Un PR titulado refactor(orders): split service into pricing, validation, persistence con resumen del diff y reporte de paridad de pruebas.

Anti-patrones

  1. Saltar la prueba en falla. Escribir la implementación primero y agregar una prueba que por casualidad pasa derrota el TDD. Mitigación: el skill tdd-enforcer se rehúsa a generar código de implementación cuando no existe prueba en falla.
  2. Confiar en el porcentaje de cobertura como señal de calidad. La cobertura de línea es métrica de vanidad. Mitigación: trackea mutation score o branch coverage, e incluye aserciones de camino negativo en cada archivo de prueba.
  3. Dejar que Copilot elija nombres sin contexto. Nombres alucinados a partir de patrones fuera del repo producen código inconsistente. Mitigación: da alcance a las instrucciones con applyTo y enseña el vocabulario de dominio a Copilot.
  4. Refactors grandes one-shot. Los refactors que tocan decenas de archivos a la vez no se pueden revisar con seguridad. Mitigación: divide en una secuencia de commits pequeños, preservando comportamiento, cada uno verde en la suite.
  5. Ignorar hooks. Un pre-commit hook que falla es un regalo, no un bloqueador. Mitigación: trata la salida del hook como la primera revisión; corrige antes de commitear.

KPIs y métricas de impacto

La persona Developer se evalúa con una mezcla de DORA, SPACE y métricas de Agentic DevOps.

MétricaBaseline (manual)Objetivo (agéntico)Medición
Lead time de PR3 días< 1 díaGitHub API
Frecuencia de deploySemanalVarias por díaGitHub Deployments
Tasa de falla de cambio20 por ciento< 5 por cientoApplication Insights o incidentes post-deploy
Tiempo medio de restauración4 horas< 1 horaRastreador de incidentes
Confiabilidad de la suite85 por ciento> 99 por cientoFlake rate
Mutation scoreDesconocido> 70 por cientoStryker, Pitest o equivalente
Tasa de retrabajo30 por ciento< 10 por cientoPorcentaje de código mergeado reescrito en 30 días
Eficiencia de tokensN/A< 1M tokens por PR mergeadoReporte de uso de Copilot

Madurez en cuatro niveles

NivelNombreMarcadores
L1ManualCopy-paste de Stack Overflow, sin prompt estándar, sin instrucciones con alcance, sin MCPs
L2AsistidoSolo autocomplete de GitHub Copilot, sin agente, AGENTS.md ausente o genérico
L3AumentadoUn agente Implementer, cuatro slash prompts, instrucciones con alcance, uno o dos MCPs, flujo TDD
L4AgénticoKit completo de primitivas, hooks enforzados, MCPs validados solo del catálogo, narrativa de PR auto-generada, scorecard de madurez por encima del 80 por ciento

Integración con otras personas

Entregas:

  • Del Technical Lead: tabla de routing, instrucciones con alcance, AGENTS.md, baseline del proyecto
  • Del Software Architect: CODEMAP.md, IMPLEMENTATION_PLAN.md con marcadores paralelos, contratos de API
  • Al QA Engineer: PR mergeado con pruebas pasando, matriz de pruebas actualizada
  • Al Tech Writer: CODEMAP.md actualizado, nuevas superficies de API pública, entrada en el changelog
  • Al SRE: artefacto listo para deploy, configuración de feature flag, actualizaciones de runbook

Glosario

  • Agente: un rol de LLM configurado con herramientas, instrucciones y un shape de salida definido. Vive en .github/agents/<nombre>.agent.md.
  • Prompt: un slash command reutilizable que invoca un agente con una tarea específica. Vive en .github/prompts/<nombre>.prompt.md.
  • Instrucciones: guía con alcance aplicada por pattern match en paths de archivo vía applyTo. Vive en .github/instructions/<nombre>.instructions.md.
  • Skill: capacidad cargada bajo demanda que se activa por match de palabra clave. Cuesta tokens solo cuando dispara.
  • Hook: regla de cero tokens enforzada en un evento específico del ciclo de vida (pre-commit, post-commit, pre-push, pre-merge).
  • MCP: servidor Model Context Protocol que expone sistemas externos (GitHub, Azure, Azure DevOps, etc.) al agente.
  • EARS: Easy Approach to Requirements Syntax. Formato usado en SPECIFICATION.md.
  • TDD: Test-Driven Development. Escribe primero la prueba en falla, luego el mínimo código para pasarla.
  • CODEMAP: Documento generado que describe el esqueleto del programa para el LLM y para humanos.

Referencias

Paula Silva | Software Global Black Belt

Start with the platform, not the agents. Comece pela plataforma, não pelos agentes. Comience por la plataforma, no por los agentes.

Building the future of software development with AI and Agentic DevOps.

Knowledge Hub · v3.4.0 · 2026-06-17
paulasilva · 2026-06-17 EN · PT-BR · ES