Table of Contents generated with DocToc
This guide is for instructors and facilitators running the Apache Training module (this directory) as a structured course. Learners working through the material self-paced do not need it — the lesson files stand alone.
A facilitator is anyone organising and running the module for others: a PMC member running a project on-boarding session, a community mentor hosting a workshop at a conference, or a team lead running a weekly reading group. No prior experience teaching AI is required; the lesson files carry the technical content. This guide covers the logistics, timing, and facilitation moves that turn static reading material into an active learning session.
Eleven lessons totalling approximately 7 hours of learner time:
| Lesson | Topic | Learner time |
|---|---|---|
| 1 | What agents are | 30 min |
| 2 | Working with agents | 30 min |
| 3 | Choosing models | 30 min |
| 4 | Your first skill | 60 min |
| 5 | Writing safe skills | 45 min |
| 6 | Debugging a skill | 45 min |
| 7 | Writing portable skills | 30 min |
| 8 | Eval-driven development | 60 min |
| 9 | Agentic and autonomous work | 45 min |
| 10 | English as a programming language | 30 min |
| 11 | How to contribute | 30 min |
Each lesson follows the same structure: read the source page → work through four or five exercises (20–40 min) → answer the self-check questions. Exercises need no computer; they use paper, a whiteboard, or a shared document. The self-check questions include hidden answers that learners reveal to grade themselves.
Learners work through one or two lessons per week on their own. The facilitator runs a 30-minute weekly check-in to answer questions and debrief the self-check answers. Recommended for distributed teams and reading groups. Lowest facilitation overhead; high learner flexibility.
Cover all eleven lessons in a single day. Use the one-day schedule in the Schedule templates section. Requires a dedicated room or video-conference session. Best for initial project on-boarding, conference tutorials, or intensive team training.
Split the module across two half-days or two evenings. Lessons 1–5 (concepts and first skill) in session one; lessons 6–11 (safety, portability, evals, autonomy, prose discipline, and contributing) in session two. A natural break point: session two builds on working skills, so learners have time between sessions to write one for their own project.
Upload each lesson file as a unit in your learning management system. Tag learning time using the per-lesson estimates above. Use the self-check questions as the in-LMS quiz. The facilitator role reduces to answering questions in the discussion forum.
| Time | Activity |
|---|---|
| 09:00–09:15 | Welcome, objectives, module overview |
| 09:15–09:45 | Lesson 1 — What agents are |
| 09:45–10:15 | Lesson 2 — Working with agents |
| 10:15–10:45 | Lesson 3 — Choosing models |
| 10:45–11:00 | Break |
| 11:00–12:00 | Lesson 4 — Your first skill (60 min) |
| 12:00–13:00 | Lunch |
| 13:00–13:45 | Lesson 5 — Writing safe skills |
| 13:45–14:30 | Lesson 6 — Debugging a skill |
| 14:30–15:00 | Lesson 7 — Writing portable skills |
| 15:00–15:15 | Break |
| 15:15–16:15 | Lesson 8 — Eval-driven development (60 min) |
| 16:15–17:00 | Lesson 9 — Agentic and autonomous work |
| 17:00–17:30 | Lesson 10 — English as a programming language |
| 17:30–18:00 | Lesson 11 — How to contribute |
| 18:00–18:15 | Wrap-up and next steps |
Reduce to a half-day by covering lessons 1–5 only (concepts and first skill). Lessons 6–11 form a natural second half.
Session 1 (~3.5 hours): Welcome (15 min), lessons 1–5 (175 min), wrap-up (10 min). Assign: write one skill for your project between sessions.
Session 2 (~4.5 hours): Review and share skills from the between-session assignment (20 min), lessons 6–11 (240 min), retrospective (15 min).
One lesson per week, 45 minutes per session. Learners read the source page and lesson file before the session. The session time is for exercises and debrief only.
| Week | Lesson | Prep (before session) |
|---|---|---|
| 1 | What agents are | Read what-agents-are.md and lesson 1 |
| 2 | Working with agents | Read working-with-agents.md and lesson 2 |
| 3 | Choosing models | Read choosing-models.md and lesson 3 |
| 4 | Your first skill | Read your-first-skill.md and lesson 4 |
| 5 | Writing safe skills | Read writing-safe-skills.md and lesson 5 |
| 6 | Debugging a skill | Read debugging-skills.md and lesson 6 |
| 7 | Writing portable skills | Read portable-skills.md and lesson 7 |
| 8 | Eval-driven development | Read eval-driven-development.md and lesson 8 |
| 9 | Agentic and autonomous work | Read agentic-work.md and lesson 9 |
| 10 | English as a programming language | Read english-as-code.md and lesson 10 |
| 11 | How to contribute | Read contributing.md and lesson 11 |
For each lesson: the core idea to anchor, discussion prompts to deepen the group's understanding, common misconceptions to correct, and rough timing guidance for instructor-led delivery.
These timings are for instructor-led delivery, where the reading is compressed (skimmed, or presented together) to leave most of the slot for exercises. They deliberately allocate less reading time than the self-paced estimates in each lesson's own header — a workshop should spend its time on active practice, not on reading the source page aloud.
Core idea. An agent is a loop: model, tools, loop, context. Every other idea in the module is a consequence of this structure.
Timing. 30 min: 10 min to read the source page together or in pairs, 15 min exercises, 5 min self-check debrief.
Discussion prompts.
<PROJECT>? What would you need to put into context?”Common misconceptions.
Core idea. An agent is a collaborator, not a command-runner. The quality of what you get out depends on the quality of what you put in.
Timing. 30 min: 10 min reading, 15 min exercises, 5 min debrief.
Discussion prompts.
<PROJECT>. Write the first message you would send. Now read it back — is it complete? What would the agent need to clarify?”Common misconceptions.
Core idea. There is no single best model for every task; there is a best model for a given capability, speed, and cost combination, and the eval suite is what decides.
Timing. 30 min: 10 min reading, 15 min exercises, 5 min debrief.
Discussion prompts.
<PROJECT>, would you reach for the cheapest available model, the most capable, or something in between? What information would you need to decide?”<PROJECT> tasks? What could go wrong?”Common misconceptions.
local-smoke eval tag exists precisely to test this claim.Core idea. A skill is a plain Markdown file with YAML frontmatter. Writing one is within reach of any contributor who can open a pull request.
Timing. 60 min: 15 min reading, 35 min exercises (the writing exercise takes longer), 10 min debrief.
Discussion prompts.
<PROJECT> would benefit most from a repeatable agent skill? Why that one?”description field that triggers the skill. If your description is vague, what happens? Try writing two descriptions for the same skill — one vague, one precise — and compare them.”Common misconceptions.
description field is just documentation.” The description is what the agent reads to decide when to invoke the skill. It is a trigger, not a comment.Core idea. Safety is not a review gate at the end; it is three properties built into the skill as you write it: propose-confirm-act, data-not-instructions, and sandbox-by-default.
Timing. 45 min: 10 min reading, 30 min exercises (the propose/confirm classification exercise is dense), 5 min debrief.
Discussion prompts.
<PROJECT>'s context?”<PROJECT>'s issue tracker of text that could be mistaken for an instruction.”Common misconceptions.
Core idea. Debugging an agent is diagnostic work: isolate the failing step, read the transcript, find the moment the agent diverged, and adjust the prompt or context — not the retry count.
Timing. 45 min: 10 min reading, 30 min exercises, 5 min debrief.
Discussion prompts.
Common misconceptions.
Core idea. A skill that hard-codes project names, tool paths, or hosting assumptions only works in one place. Portability comes from placeholders and config-resolution, not from “making it generic.”
Timing. 30 min: 10 min reading, 15 min exercises, 5 min debrief.
Discussion prompts.
<PROJECT> and a sister project?”<tracker> placeholder resolves differently for a GitHub project and a Jira-backed project. Who decides which adapter to load, and when?”Common misconceptions.
<PROJECT>, so portability is not my concern.” Even a project-internal skill benefits from placeholders: it is easier to test with a dummy config, easier to explain to new contributors, and easier to donate upstream if the project later wants to.<tracker>, <PROJECT>) is more readable than a hardcoded URL. It makes the assumption explicit rather than hiding it in a string.Core idea. Correctness for an agent is not a binary; it is a distribution over many inputs. An eval suite is how you measure that distribution and track it over time.
Timing. 60 min: 15 min reading, 35 min exercises (the fixture design exercise takes longer), 10 min debrief.
Discussion prompts.
local-smoke eval case and a frontier-only case? Why does that distinction matter for a project that wants to adopt the skill with a local model?”Common misconceptions.
Core idea. Autonomy is not an on/off switch; it is a dial with four rungs. Moving up the dial is only safe once you have the guardrails and evals that make it safe — not before.
Timing. 45 min: 15 min reading, 25 min exercises, 5 min debrief.
Discussion prompts.
<PROJECT>'s current automated work sit? Where would you want it to sit in twelve months, and what guardrails would you need to add first?”<PROJECT>'s community?”Common misconceptions.
Core idea. The words in a skill are the program. Ambiguity is a bug class. The four disambiguating moves — define terms, say what done looks like, state boundaries, name edge cases — are the tools for closing gaps.
Timing. 30 min: 10 min reading, 15 min exercises, 5 min debrief.
Discussion prompts.
Common misconceptions.
Core idea. Most of Magpie is prose the agent executes, so contributing is within reach of anyone who can write precisely. The four first contributions — fix a skill, improve a doc, add a pattern, write a new skill — all follow the same spec-first, eval-backed, reviewed path.
Timing. 30 min: 10 min reading, 15 min exercises, 5 min debrief.
Discussion prompts.
<PROJECT>, and why that one?”<PROJECT>'s skills. Does it alter a rule, a flow, or a contract? Walk the group through whether it needs a spec update.”Common misconceptions.
tools/).Every exercise uses <PROJECT> where a real project name would appear. Before running the module, decide whether to:
Other placeholders you may encounter:
| Placeholder | What it represents |
|---|---|
<PROJECT> | The adopting project's name |
<tracker> | The issue tracker (e.g. GitHub Issues, JIRA) |
<upstream> | The main repository (e.g. org/repo) |
<security-list> | The private security mailing list |
The source pages draw examples from open-source project maintenance. If your audience works in a different domain (internal tooling, data pipelines, etc.), swap the examples. The lesson structure remains the same; only the illustrative context changes.
You do not need to teach all eleven lessons in one sitting. A team that already has experience with agent concepts and wants to focus on safety can start at lesson 5. A team writing its first eval suite can teach lessons 1, 4, and 8 as a standalone mini-module. The lessons reference each other but are designed to be understandable on their own.
Each lesson ends with five or six self-check questions with hidden answers. Learners reveal the answers themselves and grade their own understanding. This is intentional: the goal is self-knowledge, not formal grading.
In an instructor-led session, use the self-check as a group debrief: read each question aloud and ask learners to write a brief answer before you reveal the answer. Gaps between a learner's answer and the reference answer are the most productive discussion point.
If a learner cannot answer two or more self-check questions for a lesson, suggest re-reading the source page before moving on. The lessons build sequentially: a learner who does not understand context (lesson 1) will struggle with evals (lesson 8).
This module does not issue certificates. The intended outcome is that a learner can read, write, debug, and evaluate a skill for their own project. The evidence of that outcome is a skill they have written and an eval suite that passes — not a quiz score.
“Do learners need a running agent installation?” No. The exercises are paper-based or whiteboard-based. Learners can work through all eleven lessons without installing any software. Lesson 4 (your first skill) suggests writing a skill file; that requires only a text editor.
“Can I skip the exercises and just present the source pages?” You can, but learners retain substantially less without active practice. Exercises in this module are not optional enrichment; they are the mechanism by which learners move from reading to application.
“What if learners have very different backgrounds — some have never seen a language model, others use one daily?” Lesson 1 is the equaliser: it defines terms that even experienced users often hold loosely (the difference between a model and an agent, what context means precisely). Spend extra time there. Experienced learners often find the precision useful even if the concept is familiar.
“How do I handle learners who want to build something live during the module?” Encourage it as optional enrichment, but do not let live-building block the group. Live building sessions fit better in the hands-on lab (tutorials.md) than during the lesson sequence. Point interested learners there after the module.
“Are there formal assessment instruments for each lesson?” Not yet. The self-check questions are the primary formative assessment. Formal rubrics and summative assessments are planned for a future iteration of the module; facilitators who develop them are encouraged to contribute them back upstream (see Upstream contribution).
This module is shaped for contribution to Apache Training so it can be taught beyond the projects that adopt this framework. If you run the module and find gaps — a lesson that generates persistent confusion, a discussion prompt that falls flat, a misconception this guide does not address — please:
Contributions that improve the instructor guide carry the same Generated-by: convention as contributions to the lesson files: if you use a generative tool to draft a section, note it in the commit message following ASF Generative Tooling Guidance.
Apache License 2.0 (PRINCIPLE 17). Pages written with help from AI carry a Generated-by: note in their commit message following ASF Generative Tooling Guidance.