Skip to content
jesusprodriguez.com

azure-pbi-plan

Azure Boards: planificar antes de implementar

A PBI turned into a plan anchored to the real code before a line is written: a reasoned approach, changes per layer and an executable checklist.

stack:
Azure DevOps
task:
Plan
version:
v1.0.0
updated:
size:
5.4 KB
read:
4 min
license:
CC-BY-4.0

When it fires

Before implementing anything that spans several layers, or to validate the approach with the team.

description: Convierte un PBI o Bug de Azure Boards en un plan de implementación anclado al código real, sin escribir ni una línea. Lee el work item, recorre el repositorio, propone el enfoque y adjunta el plan al propio work item. Úsala antes de implementar algo que toca varias capas, o cuando quieras validar el enfoque con el equipo antes de gastar dos días.

  • Criteria taken as written
  • Real file paths
  • Changes per layer
  • Attaching to the work item

How you ask for it

> Plan PBI 5104 against this repository and attach the plan to the work item.

Say this to the agent as it is: the skill loads itself from its description, you do not have to name it.

Requires azure-devops-cli Install these too: this skill assumes the access they set up.

How to install one

/plugin marketplace add https://jesusprodriguez.com/skills/marketplace.json
/plugin install azure-devops@jprodriguez-toolkit

The native route, and the only one that updates itself: add the marketplace once and `/plugin marketplace update` brings in new versions. Skills get their own namespace (`azure-devops:azure-pr-review`).

The whole file

This is exactly what you download: no summaries, nothing trimmed.

Heads-up: the skill file itself is written in Spanish. Agents read it fine and answer in your language, but the prose below is not translated.

Azure Boards: planificar antes de implementar

El plan no es burocracia: es la única oportunidad barata de descubrir que el enfoque estaba mal. Reescribir un párrafo cuesta cinco minutos; reescribir tres capas, dos días.

Esta skill escribe un plan prospectivo —en futuro, lo que se hará— y lo deja donde el equipo lo pueda discutir.

Lo que este flujo no hace

Nada de esto, bajo ninguna circunstancia:

  • tocar código de producción o de test
  • compilar o ejecutar la batería de pruebas
  • crear commits, hacer push o abrir pull requests

Las únicas escrituras son el fichero del plan y —previa confirmación— su subida a Azure DevOps. Un flujo de planificación que “de paso” implementa deja de ser un plan y pasa a ser un cambio sin revisar.

1. Leer el work item

curl -s -u ":$PAT" \
  "https://dev.azure.com/$ORG/$PROJECT/_apis/wit/workitems/$ID?fields=System.Title,System.Description,Microsoft.VSTS.Common.AcceptanceCriteria,System.WorkItemType&api-version=7.1"

Tres detalles que ahorran un rehacer:

  • El tipo sale de System.WorkItemType, no se supone por el nombre de rama.
  • El título se usa literal. Reescribirlo rompe la trazabilidad con el tablero.
  • La descripción y los criterios vienen en HTML: hay que limpiar etiquetas.

Si los criterios llegan vacíos o son ambiguos, ese es el hallazgo: dilo y pregunta. Un plan construido sobre requisitos inventados valida un enfoque que nadie pidió.

2. Recorrer el código, no la memoria

Por cada criterio de aceptación, localiza y lee el código que habrá que tocar:

  • El caso de uso concreto (comando o consulta, su handler, su DTO). Ahí aterriza casi todo.
  • Las entidades de dominio implicadas, sobre todo si los criterios hablan de estados o transiciones.
  • Las integraciones externas: la interfaz y quién la implementa.
  • La persistencia: mapeos y si hace falta migración.
  • El test hermano más parecido, para copiar su estructura en vez de inventar una.

Cada afirmación del plan sobre el código actual apunta a un fichero que existe, idealmente con línea: Application/Orders/…/GetOrderHandler.cs:42. Lo que no hayas verificado, se dice que no está verificado.

Extender antes que crear. El plan que añade una carpeta nueva cuando ya existe un handler que hace el 80% es un plan que nadie va a querer mantener.

3. Escribir el plan

Estructura mínima, sin secciones de relleno:

SecciónQué responde
Contexto y problemaQué se pide y por qué, en 3-6 líneas
Criterios de aceptaciónCopiados literales y numerados, para referenciarlos
Estado actual del códigoQué existe ya y dónde, con rutas reales
Enfoque propuestoLa solución y por qué esa; las descartadas, con su motivo
Cambios por capaCada fichero marcado como crear o modificar
TestsUn test por criterio siempre que se pueda
RiesgosDatos ya corruptos, contratos, rendimiento, decisiones pendientes
ChecklistOrdenado y marcable: es lo que se sigue al implementar
VerificaciónLa prueba manual concreta: endpoint, payload, consulta

Las tres en negrita no se eliminan nunca. El resto, si no aporta, fuera.

Escrito en futuro. «Se añadirá», «habrá que modificar». Un plan que se lee como un changelog es un plan escrito después de implementar, y entonces ya no sirve para decidir nada.

Y el criterio de calidad: otra persona tiene que poder ejecutarlo sin rehacer el análisis. Si para entender el paso 4 hay que volver a leer el mismo código que tú leíste, el plan no está terminado.

4. Adjuntarlo al work item

Adjuntar es publicar: lo verá el equipo. Pide confirmación explícita antes.

Son dos llamadas, y la primera sola no hace nada visible:

# 1. Subir el fichero -> la respuesta trae .url
curl -s -u ":$PAT" -H "Content-Type: application/octet-stream" -X POST \
  "https://dev.azure.com/$ORG/$PROJECT/_apis/wit/attachments?fileName=plan.md&api-version=7.1" \
  --data-binary @plan.md

# 2. Enlazarlo: sin esto, el adjunto existe pero nadie lo ve
curl -s -u ":$PAT" -H "Content-Type: application/json-patch+json" -X PATCH \
  "https://dev.azure.com/$ORG/$PROJECT/_apis/wit/workitems/$ID?api-version=7.1" \
  -d '[{"op":"add","path":"/relations/-","value":{
        "rel":"AttachedFile","url":"<url del paso 1>",
        "attributes":{"comment":"Plan de implementación"}}}]'

Si devuelve 401 o 403, el PAT tiene ámbito de solo lectura: adjuntar exige Work Items (Read & Write). El fichero local no se toca, se dice qué pasó y se ofrece adjuntarlo a mano. No reintentar a ciegas.

Reglas

  • El plan lo lee el equipo entero: nada de cadenas de conexión, tokens ni datos personales dentro.
  • Si el análisis revela que el work item está mal planteado, eso es el entregable. Un plan honesto que dice «esto no se puede hacer sin decidir X antes» vale más que uno completo que se lo inventa.
  • Crear la rama, si se ofrece, es lo último y es opcional. Y ahí termina: no sigue ninguna implementación.