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.
Contrato del proyecto
Fichero .github/copilot-instructions.md. Convenciones de naming, rangos de ID, patrones obligatorios, prohibiciones. Se aplica a TODO prompt automáticamente.
Plantillas reutilizables
Ficheros .github/prompts/*.prompt.md con frontmatter. Se invocan con /nombre. Encapsulan tareas repetitivas (crear table ext, generar test page).
Capacidades empaquetadas
Contexto + ficheros + scripts. A diferencia de un prompt, una skill compone múltiples recursos. En Copilot Chat aparecen como herramientas invocables.
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:
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.
Create a table for customer support tiers
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.
/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.
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.
- Abrid Copilot Chat lateral en vuestra ventana de VS Code
- Pegad el prompt vago de arriba. Observad qué genera (prefijo, IDs, tooltips).
- Pegad el prompt estructurado. Comparad resultado con el anterior.
- Si da tiempo, invocad
/extend-tablesobre Customer y observad cómo aplica el contrato sin repetirse.
/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.