Skip to content
πŸŽ–οΈ The Ambassador🟣 Code🚧

πŸŽ–οΈ 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 handoff

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
1It finds someone cohort.py misses
2Every claim it makes points at a record that supports it
3A 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
1Run it, and swap the definition20 min
2Build60 min
3Show it20 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:

bash
copilot --version

Missing? npm install -g @github/copilot, then run copilot once to sign in.

πŸ“¦StarterA working cohort picker, three alternative definitions, and the nine data files.Download .zip β†’

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.

bash
cd ambassador-starter
python cohort.py

Eight names, a reason each, a next step each. Now change what it's looking for:

bash
python cohort.py --definition definitions/depth.md
python cohort.py --definition definitions/rising.md

Same 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:

FileRowsWhat it holds
CommunityActivities.csv866What people ran, for whom, at what quality
ProgramContributions.csv390What they made, whether it was reused, teams reached
PeerFeedback.csv283Sentiment, theme, how well evidenced
LearningCredentials.csv275Completed, facilitated, coached
RecognitionHistory.csv128Who's been recognized before
AmbassadorApplications.csv41Who 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 isWhere to start
πŸ” Recruitment Β· easiestThe people one file can't see, with an invitation drafted for eachSend PeerFeedback.csv rows instead of profile summaries, then diff your shortlist against the shipped one
πŸ₯Š A second opinionOne agent picks, another argues against it from the same evidenceTwo 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 diffWhat changed since last time, not the whole list againPersist each run to disk, compare by CandidateId
βš–οΈ Fairness audit at scaleWhether a skew is real or just one run's noiseLoop the same definition ten times, collect the shortlists, count how often each name survives
πŸŽ–οΈ Their own viewWhat each candidate would read about their own standing, generated per personOne call per name, from that person's records only. Hardest to get right, most useful if you do
🎯 YoursWhatever your table thinks this program is missingSmallest 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 ​

  1. 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.
  2. Package it as a skill - .github/skills/<name>/SKILL.md runs in VS Code, the Copilot CLI, and the GitHub cloud agent.
  3. Two models, one question - run the same definition through two models and diff the shortlists.
  4. Test the hard cases - write five candidates you know the answer for, and check your build gets them right.
  5. Take the definition with you - definition.md is plain text and works at any altitude.

← Back to start Β· What this scenario is about