This repository is a reference implementation for a UD01 activity on GitHub Copilot customizations (module: Programacion de Inteligencia Artificial, 5073).
Learners can use this project as a model answer: every customization primitive is represented with a realistic, justified example from an AI programming context.
Demonstrate, in a working repository, how each of the five Copilot customization layers works, when to use them, and how they differ from the alternatives.
.
├── .github/
│ ├── copilot-instructions.md # Layer 1: Global always-on instructions
│ ├── instructions/
│ │ ├── python.instructions.md # Layer 1: Rules for .py files (applyTo)
│ │ ├── markdown.instructions.md # Layer 1: Rules for .md files (applyTo)
│ │ └── notebooks.instructions.md # Layer 1: Rules for .ipynb files (applyTo)
│ ├── prompts/
│ │ ├── tutor-review.prompt.md # Layer 2: Code review via tutor agent
│ │ ├── sdd-check.prompt.md # Layer 2: Spec-driven implementation check
│ │ ├── todo-to-plan.prompt.md # Layer 2: Scan TODOs → prioritised plan
│ │ └── arch-review.prompt.md # Layer 2: Architecture review
│ ├── skills/
│ │ ├── csv-eda-basica/ # Layer 3: EDA on a CSV + notebook template
│ │ ├── revision-notebook/ # Layer 3: Notebook quality audit
│ │ ├── dataset-card/ # Layer 3: Dataset documentation card
│ │ ├── debug-python-basico/ # Layer 3: Structured Python debugging
│ │ ├── todo-a-plan/ # Layer 3: TODOs → backlog
│ │ ├── spec-a-tareas/ # Layer 3: Spec → task list (SDD)
│ │ ├── preparar-practica/ # Layer 3: Design a practice exercise
│ │ ├── conventional-commit/ # Layer 3: Git commit messages
│ │ ├── comparar-primitivas/ # Layer 3: Meta — choose the right primitive
│ │ ├── evaluar-contexto-necesario/ # Layer 3: Meta — what context to attach
│ │ └── frontmatter-designer/ # Layer 3: Meta — design frontmatter
│ ├── agents/
│ │ └── tutor.agent.md # Layer 4: Socratic teaching agent
│ └── hooks/
│ ├── notebook-guardian.json # Layer 5: PreToolUse hook config
│ └── scripts/
│ └── notebook-guardian.py # Layer 5: Hook implementation script
├── actividade.md # Official activity brief in Galician
├── enunciado.md # English task brief for the same activity
├── data/
│ └── sample.csv # Iris sample (40 rows) — targets the skills
└── doc/
├── backlog.md # Example output generated by todo-a-plan
├── capas.md # Architecture overview with file map
├── justificacion.md # Why each primitive was chosen
└── reflexion.md # Required reflection on primitive choices
├── notebooks/
│ └── 01_eda_example.ipynb # EDA notebook — targets notebooks.instructions.md
└── src/
└── train_model.py # PyTorch classifier — targets python.instructions.md
- Read
enunciado.mdfor the English task brief, oractividade.mdif you need the official Galician wording. - Read
doc/capas.mdto understand the five layers before looking at the files. - Open each
.github/subfolder in layer order: instructions, prompts, skills, agents, then hooks. - Try the slash commands in VS Code Copilot chat:
/csv-eda-basica,/comparar-primitivas,/conventional-commit, and the other packaged workflows. - Switch to the
tutoragent in the agent picker and ask it to review a function fromsrc/train_model.py. - Read
doc/justificacion.mdanddoc/reflexion.mdto connect the implementation to the primitive-selection rationale.
- VS Code with the GitHub Copilot extension (agent mode enabled).
- Python 3.10+,
torch,pandas,matplotlib,seaborn(for running the ML source files). - Optional but recommended:
jupyterso the notebook hook can produce a cleaned temporary copy instead of only denying the read:pip install jupyter.
All repository content is in English except actividade.md, which remains in Galician as the official activity brief.