mcpField
D
dev-pipeline

dev-pipeline

github.com/leandrocfeAgent workflows4177 installsUpdated 11w ago
Repository

About dev-pipeline

Dev Pipeline is an agent skill that coordinates a feature’s development lifecycle by reusing existing skills. It identifies the current state of work and defines phase ownership, review gates, and the next command.

Key features

  1. 01Detects the current development phase
  2. 02Selects a path based on feature scope
  3. 03Routes issues to agent roles and runtimes
  4. 04Advances work through review gates
  5. 05Plans branches, dependencies, and parallel work

Use cases

  1. 01Choose a workflow for a new feature
  2. 02Dispatch decomposed issues to agents
  3. 03Start code review from a PR diff

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/leandrocfe/skills --skill dev-pipeline

After installing, type/dev-pipelinein Claude Code to confirm it loaded.

Bundled filesagents/openai.yaml

Details

From the project README

Dev Pipeline

Orquestra o ciclo de vida de uma feature reutilizando as skills existentes. Você não implementa as fases aqui — você localiza o estado atual, aplica as regras de decisão, executa o que é seu, e diz ao usuário o comando exato da próxima fase.

O issue tracker e vocabulário de triage labels devem ter sido fornecidos a você — rode /setup-leandrocfe-skills se não.

Skills user-invoked (to-spec, to-tickets, wayfinder, triage, implement, handoff) só o usuário roda: seu papel é dizer quando e por quê. Skills model-invoked (grilling, tdd, code-review) você invoca diretamente na fase certa.

1. Localize o estado

Antes de propor qualquer coisa, descubra em que fase o trabalho está. Explore, não pergunte:

  • Argumento do usuário descreve ideia nova? → fase de dimensionamento.
  • Existe spec no tracker sem tickets derivados? → fase de decomposição.
  • Existem issues abertas sem brief/labels de triage? → fase de triage.
  • Existem issues prontas (com brief) sem branch? → fase de despacho.
  • Existe branch em andamento? → fase de implementação ou review (olhe o diff).

Anuncie a fase detectada em uma frase e siga dali. Nunca reinicie o pipeline do zero se há trabalho em voo.

2. Dimensione (fase 0)

Uma feature nova passa primeiro pelo dimensionamento. Três saídas possíveis:

TamanhoCritérioRota
Trivial< ~1h, 1–2 arquivos, zero ambiguidadeSem artefato. Implemente direto nesta sessão (branch + PR se repo usa PRs).
PequenoCabe em 1 sessão e 1 PR, escopo claroSem spec. Escreva spec curta (uma issue única no tracker, ou .md se tracker é markdown local) e vá direto a implementação.
Médio/Grande> 1 sessão, ou > 1 agente em paralelo, ou ambiguidade real de escopoPipeline completo (seção 3).
Enorme/nevoentoO caminho até o destino ainda não é visível — greenfield, ou feature grande demais para uma sessão sequer planejar"Rode /wayfinder" para traçar o mapa e resolver a névoa em decisões. Ele reentra no pipeline em /to-spec quando o caminho ficar claro.

Regra de ouro: > 1 sessão de trabalho OU > 1 agente em paralelo → issues no tracker. Senão, o mínimo possível. Na dúvida entre pequeno e médio, pergunte uma única pergunta ao usuário; não infle escopo por precaução.

O corte para wayfinder não é tamanho, é visibilidade: se você consegue enunciar o que construir, é pipeline completo por maior que seja; se você ainda não sabe o que decidir primeiro, é wayfinder.

3. Pipeline completo (médio/grande)

Cada fase termina num gate: artefato produzido, usuário revisa, você indica o próximo comando.

FaseQuem executaArtefatoGate — próximo passo
EsclarecerVocê, via skill grilling (invoque direto)Entendimento compartilhado na conversa"Rode /to-spec para consolidar"
EspecificarUsuário: /to-specSpec enxuta no tracker"Rode /to-tickets sobre a spec"
DecomporUsuário: /to-ticketsTickets em vertical slices, cada um com suas blocking edges"Rode /triage para classificar e escrever briefs"
Triar + rotearUsuário: /triage; você aplica a tabela da seção 4 durante a triageIssues com brief + label agent:*"Rode /implement na issue #N" (indique a primeira da frontier — a que não tem blockers abertos)
ImplementarUsuário: /implement; use tdd nos seams acordadosBranch + commits + PRInvoque code-review
RevisarVocê, via skill code-review (invoque direto)Achados sobre o diff, em dois eixos (Standards + Spec)Aprovado → merge. Problemas → volta a implementar.
Continuar——Mais tickets na mesma sessão → próximo ticket. Nova sessão → "Rode /handoff". Fim → feche a spec.

4. Roteamento de agente e runtime

Dois eixos independentes, decididos na triage, gravados como dois labels na issue.

Eixo 1 — role. Três perguntas, na ordem; a primeira resposta "sim" decide:

  1. Há decisão de design ou trade-off em aberto? → agent:architect
  2. Caminho conhecido, mas exige julgamento? → agent:builder
  3. Mecânico, sem ambiguidade? → agent:runner

Advisor atua só antes do código (grilling, escopo). Reviewer só depois (fase de review).

Eixo 2 — runtime. Qual ferramenta/modelo executa. Tabela default (ajuste ao seu setup; o mapeamento role→runtime default vive aqui, a exceção vive no label):

RoleRuntime defaultRacional
agent:architectClaude Code, modelo topRaciocínio profundo, trade-offs
agent:builderClaude Code modelo médio, ou CodexImplementação padrão
agent:runnerO mais rápido/barato disponível (Codex mini, Grok fast, Haiku)Mecânico, volume

Label runtime:* só quando foge do default (ex.: runtime:codex num architect). Regra de review: autor e reviewer de runtimes/vendors diferentes sempre que possível — cross-model review pega mais defeito que auto-review.

Os labels vão na issue para que o despacho nunca seja re-decidido.

Despacho entre runtimes

O brief autocontido é a interface — qualquer CLI pega a issue sem contexto extra. Dois modos:

  • Manual: usuário abre o runtime indicado pelo label num worktree da issue e aponta para o brief (gh issue view N).
  • Headless: uma sessão orquestradora despacha via shell — ex. codex exec --full-auto "implemente a issue #N; brief em: gh issue view N" dentro do worktree; equivalente para outros CLIs. Orquestrador só despacha e coleta; não implementa em paralelo ao worker.

Em ambos os modos o resultado volta pelo mesmo canal: branch + PR referenciando a issue. O pipeline não sabe nem precisa saber qual runtime produziu o diff.

5. Contexto e paralelismo

Agentes stateless, artefatos stateful. Contexto nunca vive em memória de conversa:

  • O brief da issue é autocontido — quem pega a issue não precisa de mais nada. Um agente prepara trabalho para outro escrevendo o brief.
  • A spec carrega o porquê; a issue linka para ela.
  • A descrição do PR carrega o que foi feito, para o review.
  • /handoff só para trabalho interrompido no meio de uma issue — nunca como substituto de brief.

Paralelismo sem conflito:

  • 1 issue = 1 branch = 1 agente. Paralelo local → git worktrees.
  • O brief lista os arquivos que a issue toca. Não despache em paralelo issues com interseção de arquivos.
  • Dependências são as blocking edges que /to-tickets já gravou — nativas no tracker onde ele suporta, texto no corpo onde não. Despache apenas a frontier: tickets cujos blockers estão todos fechados.

6. Git

  • Branch: feat/<n>-slug-curto (número da issue no nome).
  • Conventional commits; Closes #N no corpo do PR.
  • PR pequeno (~alvo: revisável em uma sentada), merge incremental.

Anti-padrões

  • Não crie spec para trabalho pequeno — dimensionamento existe para isso.
  • Não escreva specs em .md soltos quando o tracker está configurado — artefato órfão não tem estado nem dono.
  • Não pule a triage "porque a issue é óbvia" — o label agent:* e o brief são o que permite despacho sem re-análise.
  • Não acumule fases numa resposta só — um gate por vez; o usuário revisa o artefato antes da fase seguinte.

Comments

Markdown supported