ποΈ The Ambassador β
π§ Work in progress
Scenario 3 is still being built and tested. Steps, downloads, and screenshots may change before the event.
You'll build this in code - VS Code, GitHub Copilot, and the Copilot CLI.
The AI Skilling Ambassador program runs on people who volunteer for it, and it has to keep them. The person who ran it left halfway through.
72 ambassadors across nine regions do it on top of their real jobs: office hours, answering questions, mentoring one-on-one, and writing the quickstart guides everyone else leans on. Nobody is paid for it, so the program runs on what it can offer back: an invitation in, a facilitation slot, a nomination, a sponsor conversation. Last round five people withdrew and seven were passed over.
cohort.py picks the next cohort. It reads definition.md, sends all 72 candidates to the model, and comes back with eight names, a reason for each, and a proposed next step. It is fast, it is confident, and it cannot show its work.
Ship something that finds someone cohort.py misses, shows the evidence behind every claim, and lets a person overrule it.
- 9 data files loaded, 1 sent to the model
- 0 claims checked against a row
- 72 candidates, ~2,000 evidence records
What you're shipping β
Three conditions. How you meet them is yours.
| Condition | |
|---|---|
| 1 | It finds someone cohort.py misses |
| 2 | Every claim it makes points at a record that supports it |
| 3 | A person can overrule it, and the next run remembers |
Nothing says which of those to do first, or whether you write Python, build agents in .github/agents/, or both. A table that ships one condition well beats a table that half-ships three.
Nothing gets sent
Invitations, nominations and recognition are drafted and held for a person to read. Keep that in whatever you build.
How this runs β
| Time | ||
|---|---|---|
| 1 | Run it, and swap the definition | 20 min |
| 2 | Build | 60 min |
| 3 | Show it | 20 min |
Do step 1 on your own. Everything after is the table.
Before you start β
The data is fictional
Invented people, invented scores, invented feedback. Nothing here describes a real person and no real program is being modeled. program-data/DISCLAIMER.md has the details.
Python 3.10+ and the GitHub Copilot CLI, signed in:
copilot --versionMissing? npm install -g @github/copilot, then run copilot once to sign in.
Two places to get unstuck
Ask Copilot - it's building with you, so paste the error and let it fix it. For general mechanics the Guides are short how-tos. Coaches are in the room and every table has an SME.
1 Β· Run it, and swap the definition β
Done when: two definitions have given you two different shortlists.
cd ambassador-starter
python cohort.pyEight names, a reason each, a next step each. Now change what it's looking for:
python cohort.py --definition definitions/depth.md
python cohort.py --definition definitions/rising.mdSame 72 people. depth.md and rising.md share two names out of eight, and each surfaces four people no other definition finds. The definition is doing the work, and it's plain prose in a file you can edit.
Open definition.md and write what your program would look for. Re-run.
Then read What it does not do in the README. Those are the three conditions, and they're where the next 60 minutes go.
2 Β· Build β
Done when: one condition is met, on real output, with a name on screen.
π This is the fun part - keep it low-stress
Pick whatever direction sounds good and build it with your table. It doesn't have to be perfect, and it doesn't have to solve everything - the whole point is to explore your tool, trade ideas, and vibe-code something together. Use whatever you came here to learn, see how far you get, and have fun with it. You're here to learn by doing.
Where the room is β
Everything is loaded and nothing is used. data.py attaches every record to its candidate:
| File | Rows | What it holds |
|---|---|---|
CommunityActivities.csv | 866 | What people ran, for whom, at what quality |
ProgramContributions.csv | 390 | What they made, whether it was reused, teams reached |
PeerFeedback.csv | 283 | Sentiment, theme, how well evidenced |
LearningCredentials.csv | 275 | Completed, facilitated, coached |
RecognitionHistory.csv | 128 | Who's been recognized before |
AmbassadorApplications.csv | 41 | Who put their hand up |
cohort.py sends none of it. It sends a summary line per person.
Ideas, not instructions β
Starting points if you want one. Take one, combine two, or ignore all of them.
| What it is | Where to start | |
|---|---|---|
| π Recruitment Β· easiest | The people one file can't see, with an invitation drafted for each | Send PeerFeedback.csv rows instead of profile summaries, then diff your shortlist against the shipped one |
| π₯ A second opinion | One agent picks, another argues against it from the same evidence | Two calls, opposed instructions. .github/agents/*.agent.md, and they can run different models. Keep the disagreement in the output instead of resolving it |
| π The run-to-run diff | What changed since last time, not the whole list again | Persist each run to disk, compare by CandidateId |
| βοΈ Fairness audit at scale | Whether a skew is real or just one run's noise | Loop the same definition ten times, collect the shortlists, count how often each name survives |
| ποΈ Their own view | What each candidate would read about their own standing, generated per person | One call per name, from that person's records only. Hardest to get right, most useful if you do |
| π― Yours | Whatever your table thinks this program is missing | Smallest version that runs first |
Pick by what your table would still run next time round, not by what sounds most impressive.
ποΈ Pick the model that fits the job
A long-context model can hold all nine files at once; a faster one is better while you're iterating. Switch in the model picker and compare on the same question.
Push it further β
- Point it at something real - the starter reads CSVs, but the shape is the same for a SharePoint list or a Teams channel export. Swap the loader, keep everything else.
- Package it as a skill -
.github/skills/<name>/SKILL.mdruns in VS Code, the Copilot CLI, and the GitHub cloud agent. - Two models, one question - run the same definition through two models and diff the shortlists.
- Test the hard cases - write five candidates you know the answer for, and check your build gets them right.
- Take the definition with you -
definition.mdis plain text and works at any altitude.