Workshop ALDC · V-Valley 2026
Bloque 01 · Copilot para BC
Bloque 01

GitHub Copilot para Business Central

Dominar el ecosistema Copilot — Instructions, Prompts, Skills, Agents — aplicado a AL. Prompt engineering con patrón claro. Del prompt vago al prompt estructurado.

Ecosistema Copilot · 4 piezas que conviven

Antes de meterse a escribir prompts, conviene tener mapa. Copilot hoy es un ecosistema de 4 piezas que conviven en el workspace y se combinan. No hay que elegir una — todas trabajan juntas.

INSTRUCTIONS

Contrato del proyecto

Fichero .github/copilot-instructions.md. Convenciones de naming, rangos de ID, patrones obligatorios, prohibiciones. Se aplica a TODO prompt automáticamente.

PROMPTS

Plantillas reutilizables

Ficheros .github/prompts/*.prompt.md con frontmatter. Se invocan con /nombre. Encapsulan tareas repetitivas (crear table ext, generar test page).

SKILLS

Capacidades empaquetadas

Contexto + ficheros + scripts. A diferencia de un prompt, una skill compone múltiples recursos. En Copilot Chat aparecen como herramientas invocables.

AGENTS

Orquestación autónoma

Capa que invoca skills, prompts y tools de forma autónoma o semi-autónoma. Es la antesala de ALDC. Se cubre a fondo en el Bloque 3.

Prompt engineering · el patrón

Existen muchos frameworks de prompt engineering. El que usamos en el workshop es directo y probado en AL:

Context Task Constraints Output Format

Cuatro secciones, ese orden. No hay que inventar. Y cuando aplica bien, la diferencia entre un prompt vago y uno estructurado es brutal.

Vago vs estructurado · lado a lado

Prompt vago

Create a table for customer support tiers

Sin prefijo. Sin rango de ID. Sin DataClassification. Sin Caption ni ToolTip. Copilot improvisa lo que le parece.

Prompt estructurado

Context: BC SaaS. Follow copilot-instructions.md.
Task: Generate AL table "CEB Support Tier" in range 50100-50149.
Constraints:
- PK: Code (Code[20])
- Fields: Description, SLA Hours, Priority, Active
- Caption + ToolTip on every field
- DataClassification per field
- Include LookupPageId
Output: Single .al file, ready to compile.

Prefijo correcto. ID en rango. DataClassification. Caption y ToolTip. Código listo para compilar.

La diferencia entre los dos outputs no es Copilot siendo "mejor" o "peor". Es el autor siendo explícito o vago. El contrato del proyecto carga el contexto; el prompt estructurado añade la tarea. Cuanto más se delega al contrato, más corto puede ser el prompt individual.

Demo en vivo · 3 prompts para copiar

Los 3 prompts que se lanzarán durante la demo, listos para copiar. El primero muestra qué ocurre sin contexto. El segundo aplica el patrón completo. El tercero invoca un prompt file reutilizable del workspace.

1 · prompt vago
Create a table for customer support tiers
2 · prompt estructurado · patrón Context/Task/Constraints/Output
Context: BC SaaS extension for customer support management. Follow copilot-instructions.md.

Task: Generate an AL table named "CEB Support Tier" in the range 50100-50149.

Constraints:
- Primary key: "Code" (Code[20])
- Fields: "Description" (Text[100]), "SLA Response Hours" (Integer), "Priority Level" (Option: Low,Medium,High,Critical), "Active" (Boolean, default true)
- All fields must include Caption and ToolTip
- DataClassification: CustomerContent for all fields except "Code" which is SystemMetadata
- Include a LookupPageId property

Output: Single .al file, ready to compile. No commentary, code only.
3 · /extend-table · invocación del prompt file reutilizable
/extend-table

Source table: Customer
Fields:
- Support Tier Code (Code[20]) — link to CEB Support Tier
- Support Active (Boolean) — whether support is enabled
- Support Start Date (Date) — start of the support contract

Business reason: Enable tier-based customer support workflows.
Replica en paralelo · 3 min

Replicad la comparación vago vs estructurado en vuestra máquina

Durante la demo, quien tenga VS Code abierto con el workspace del workshop puede replicar en paralelo. No hace falta entregar nada — el objetivo es que cada uno vea con sus ojos el salto de calidad.

  1. Abrid Copilot Chat lateral en vuestra ventana de VS Code
  2. Pegad el prompt vago de arriba. Observad qué genera (prefijo, IDs, tooltips).
  3. Pegad el prompt estructurado. Comparad resultado con el anterior.
  4. Si da tiempo, invocad /extend-table sobre Customer y observad cómo aplica el contrato sin repetirse.
Qué observar en el output En el prompt vago, muy posiblemente Copilot improvise prefijo, ID fuera de rango, campos sin Caption ni ToolTip. En el estructurado, los 4 puntos se cumplen. En /extend-table, lo notable es que no hubo que repetir el contexto — el prompt file lo lee de copilot-instructions.md.

Lecciones que quedan del bloque

El contrato manda. copilot-instructions.md se aplica a TODO prompt automáticamente. Invertir en escribirlo una vez bien ahorra repetir contexto en cada interacción. Prefijos, rangos, permission set policy, prohibidos — ahí dentro.

Prompt file reutilizable > prompt ingenioso. Si tú o tu equipo hacéis la misma tarea dos veces, es candidata a prompt file. /extend-table es un ejemplo. Se comparte, se versiona, se audita.

El patrón Context/Task/Constraints/Output es tu red. Cuando dudes qué falta en un prompt, repasa los 4 apartados. Normalmente falla uno.

Qué cubre este bloque

Ecosistema Copilot

Las 4 piezas (Instructions, Prompts, Skills, Agents) y cómo conviven en el workspace.

Prompt engineering

El patrón Context/Task/Constraints/Output aplicado a AL.

Vago vs estructurado

Comparación lado a lado de un prompt improvisado vs uno con el patrón aplicado.

Demo en vivo

Tres ejecuciones en Copilot Chat con los prompts copiables.

CARGANDO README…