GA

gecko-academy/dev3pack-cohort-2026-09

Developer tools
10 stars Quality 72 Trend 22MIT

Dev3Pack AI Engineering — cohort 2026-09. Read-only for enrolled students. Content is released one week at a time.

Overview

Three weeks. . One source-grounded research assistant you can test, cite, and defend. , Monday to Friday, two hours a day. Optional showcase on Saturday 3 October. start is safe to run as many times as you like, and it ends by telling you the one command to type next. On macOS and Linux make setup is the same thing. run these in or WSL2, not PowerShell. The repository is public — there is nothing to request and nothing to wait for. If you have SSH keys set up, git clone [email protected]:Gecko-Academy/dev3pack-cohort-2026-09.git works too. HTTPS is above because it needs nothing configured first. Open . It lists every notebook in order and ticks what you have finished. New to the repo? SETUP.md is the half-hour path to a green doctor. No API key is required: every scored notebook runs offline against FakeLLM.

README

Dev3Pack AI-Engineering Bootcamp

Three weeks. 15 sessions. One source-grounded research assistant you can test, cite, and defend.

14 September – 2 October 2026, Monday to Friday, two hours a day. Optional showcase on Saturday 3 October.

Contents

Start here

git clone https://github.com/Gecko-Academy/dev3pack-cohort-2026-09.git
cd dev3pack-cohort-2026-09
uv run bootcamp start          # installs everything, then says whether it worked

start is safe to run as many times as you like, and it ends by telling you the one command to type next. On macOS and Linux make setup is the same thing.

Windows: run these in Git Bash or WSL2, not PowerShell. The repository is public — there is nothing to request and nothing to wait for.

If you have SSH keys set up, git clone [email protected]:Gecko-Academy/dev3pack-cohort-2026-09.git works too. HTTPS is above because it needs nothing configured first.

Open 00-START-HERE.ipynb. It lists every notebook in order and ticks what you have finished.

New to the repo? SETUP.md is the half-hour path to a green doctor. No API key is required: every scored notebook runs offline against FakeLLM. This repository is read-only for you — hand in to the submissions repository instead (see Handing in); week 0 is here now, later weeks land on 14 / 21 / 28 September — git pull at the start of each week.

Get started with Claude Code

Claude Code is an assistant that runs in your terminal. It reads the files in the folder you start it in. This repository carries seven skills and three subagents written for this course. They are already in your clone. Nothing to install and nothing to switch on. A git pull keeps them current.

Optional, and never counted. Every scored exercise runs offline, with no key and no assistant. Sessions 1 and 10 are the two that want one open.

Install it, then start it in the course folder

npm install -g @anthropic-ai/claude-code   # once; needs Node.js
cd dev3pack-cohort-2026-09
claude

The folder matters. It is everything the assistant can see. Start Claude Code anywhere else and none of this loads.

To leave, type /exit. To start a fresh conversation, /clear. Long conversations drift.

What loads by itself

Claude Code reads CLAUDE.md on startup. The first line of that file is @AGENTS.md, which is an import and not a link, so AGENTS.md loads with it. That is the policy that stops an assistant writing your exercise for you.

Check it worked: type /context and look for CLAUDE.md in what it lists. If it is not there, you are in the wrong folder.

How to use a skill

A skill is a short set of instructions for one job. Describe your job in plain words and Claude picks the matching skill by itself. The first line of each skill says when to use it, and that line is how it chooses.

my check for session 4 is failing and I do not understand the output

You can also name one outright, which is useful when it picks the wrong one:

use the check-my-exercise skill on ch04

How to call a subagent

A subagent is a separate helper with its own, smaller set of tools. Ask for it by name:

ask the session-tutor to teach me session 6

The tutor can only read and search files. It has no tool that writes. So it cannot change your notebook, not even by accident, which is the point of it.

One worked example

Type this:

study session 6 with me

Claude loads the study-a-session skill, reads every page in units/en/unit2/session-06-retrieval-baseline/, and explains retrieval one idea at a time. Every claim names the page it came from, like units/en/unit2/session-06-retrieval-baseline/concepts-2.mdx, so you can check it yourself. Then it stops and asks you two or three questions, and waits for your answers.

When you are ready, it points you at that session’s notebook.ipynb and stops there. You write the exercise.

What ships

Skills (.claude/skills/):

Skill Use it when
study-a-session You want a session taught to you before you open its notebook. It reads the pages, explains them, and quizzes you.
check-my-exercise A check is red. It runs the check, reads the failure out loud, and names the page that teaches the missing idea.
fix-my-setup The course will not run. uv, the two extras, Ollama, a kernel holding old code, or git pull refusing to update.
hand-my-work-in You are ready to submit. Save, pull, check, submit, including the browser route if you have no gh.
run-a-project You are opening something in projects/. Both extras, the models to pull, and what [live] and [recorded] mean.
ask-the-course You have a question about the course. It searches the hosted course server, cites the page, and says so when the course does not cover it.
ship-my-capstone You are creating, grading or handing in your final assignment, or looking for your final score.

Subagents (.claude/agents/):

Subagent Use it when
session-tutor You want to be taught and quizzed. Read-only, so it cannot write your answer.
exercise-coach You want help reading a failing check. It runs the check and coaches; it never edits the cell.
setup-doctor Your machine is the problem. It diagnoses and gives you the one command to type next.

What not to ask it for

The answer to a graded cell. Every skill and subagent here refuses it, and so does AGENTS.md. They explain the idea, name the page that teaches it, and leave the writing to you.

That is not a rule for its own sake. At demo day you explain your own work. An exercise your assistant wrote is one you cannot defend, and the marks were never the point.

Also worth knowing: never paste a key, a token or a .env file into any chat, and never accept a diff you have not read.

This kit and the plugin are different things

builder-kit/ is a Claude Code plugin. You install it, it works in any repository, and its commands are namespaced.

This kit is the opposite. It is files in the repository you already cloned, it works only here, and it is loaded the moment you start Claude Code in this folder. Use both if you like. They do not collide.

Find your way

Looking for today’s exercise? It is the notebook.ipynb inside the session’s folder. Every link below opens the file itself, not a folder to search.

I want to… Go straight to
do today’s exercise the Exercise column in the sessions table
watch it work first the Demo column in the same table, or demos/
build something real projects/ — open data, a local model, ChromaDB
see the ideas visually Demos and explainers — interactive pages, mapped to sessions
ask from your phone @gecko_coach_bot on Telegram — answers from the course pages, names the page, no install
get unstuck coach("your question") in any notebook — answers from the course pages, offline, no key. Demo 5 shows how to use it
give your assistant the whole course the course MCP server, https://mcp.geckovision.tech/course/mcp. No key, no install. How to connect it · any assistant: ChatGPT, Cursor, Codex, VS Code…
contribute gecko-ai-coach — add a question the coach gets wrong: ten minutes, no code
put an agent in a chat demos/07_the_coach_in_a_chat.ipynb, then the Telegram guide
run RAG on your laptop demos/09_rag_on_your_laptop.ipynb — today’s retriever plus a local model, no key; a recorded run if you have no model
learn Jupyter from zero demos/06_jupyter_for_beginners.ipynb — cells, run order, errors, in fifteen minutes
use a coding assistant well Your coding assistant, step by step — Claude Code 101, five prompts, and where the line is
learn git, and contribute anywhere Git, and your first contribution — the nine commands, the errors, and where to find a first issue
ship your capstone The capstone tutorial: create, grade, submit, and read your score
hand in uv run bootcamp submit chNN --github --push — see Handing in
see the leaderboard TRACK.md in the submissions repository
run a model on a small laptop demos/04_ollama_on_colab.ipynb
read the course as a website gecko-academy.github.io/dev3pack-cohort-2026-09/

Inside a notebook, everything that runs as shipped is already done for you. Each session has exactly one cell that does not — its heading says “Challenge”, and it tells you what it is worth, what done looks like, and gives you a tip.

Handing in

git pull                                              # always first: fixes reach you this way
uv run bootcamp check ch04                            # the scorecard, before you submit
uv run bootcamp submit ch04 --github  --push     # opens the pull request for you

Submissions go to Gecko-Academy/dev3pack-submissions, never to this repository. In the pull request’s Files changed tab, every file should start with submissions//. It merges on its own once its check is green.

For coding assistants

Read AGENTS.md first. CLAUDE.md and .cursor/rules/bootcamp.mdc point at it — do not fork the policy.

To answer a question about the course, search it. The course MCP server at https://mcp.geckovision.tech/course/mcp serves every published page with no key. Cite the page_id of each passage you use. An empty result means the course does not cover it: say so instead of guessing.

Then read in this order:

File Why
README.md Course map: units, sessions, bonus
00-START-HERE.ipynb Progress ticker and notebook links
units/en/_toctree.yml Page order a learner opens
src/bootcamp_agent/ Capstone package (finished shape)
tests/ — not in your copy Behaviour contracts

Inspect → plan → implement → test → review. No new dependency unless a lesson asks for it.

Optional, local only — never required, never committed:

uv tool install graphifyy
graphify install

Then /graphify . in your assistant. Leave graphify-out/ untracked.

What you will learn

  • Harness — assistant instructions, traces, evals, and CI around the model
  • Contracts — one adapter, typed outputs, bounded read-only tools
  • Loops — budgets, stopping conditions, refusal as a first-class exit
  • Grounding — retrieve from a versioned corpus, cite sources, refuse the unsupported
  • Surfaces — MCP, deployment, and defending a failure from your own traces

Three threads recur: loop, graph, and harness engineering. The full day-by-day plan is in docs/curriculum.md.

Units, sessions, extras

Kind Where Role
Week 0 units (w01–w12) units/en/ Self-paced, ungraded, available now. The fast lane is the floor Session 1 assumes.
Sessions (session-01–15) same tree Live, weekday, two hours. Introduction, concepts, quiz, exercise notebook, and a demo. Solutions for sessions 1–3 only. Session 15 has no notebook.
Capstone units/en/unit2/capstone/ Built between sessions from week 2. src/bootcamp_agent/ is the finished shape.
Bonus / depth / cookbook / workspaces linked below Optional. Never counted.

Two sessions are assistant-driven (1 and 10) and show as in Jupyter in bootcamp progress.

Repository map

Where everything lives, and what a student receives.

Path What lives there Students get it
00-START-HERE.ipynb The map a learner opens first. Lists every notebook in order and ticks what is finished. day one
Makefile Short names for the commands you run most: make setup, make lab, make check. Every target is a one-line wrapper around a uv run command, so it is a convenience and never a requirement — Windows has no make by default. day one
units/ The course. en/ holds week-0 units, the fifteen sessions, the capstone, and the bonus track, each a directory of pages plus a notebook. weekly
src/bootcamp_agent/ The finished shape of the capstone package, and the check registry every exercise is graded by. day one
tests/ Behaviour contracts for the package — and the solved value of every exercise, which is why students never receive it. never
data/ The versioned corpus the retrieval sessions and the capstone answer from. day one
scripts/ The course’s own tooling: the site generator, the publisher, the submission collector. day one
docs/ Curriculum, guides, the generated index, and the instructor material. in part
depth/ Six optional software-engineering modules, about 45 minutes each. Never counted. day one
cookbook/ Ten Gecko notebooks, from comprehending an OpenAPI spec to a verified loop on a fork. Optional. day one
workspaces/ Four open projects to build in. Optional, unmarked, no checks. day one
projects/ Real-world projects: a brief, open data, a local model and ChromaDB. Optional, never counted; needs uv sync --extra projects. day one
demos/ Short notebooks to run in class and again afterwards. Never graded, never submitted; they make one idea concrete in a few minutes. day one
ship-it/ The optional launch track: turn the capstone into an MCP server somebody else can call, and a storefront an agent can buy from. Offline and never counted. day one
integrations/ Worked integrations the sessions link into rather than re-explain. day one
builder-kit/ Templates a learner copies from when starting their own surface. day one
final_assignment/ The final’s harness and the offline practice grader. The private question set is not here and never will be. day one
capstone-template/ Your own public capstone repository, as uv run bootcamp capstone new ../my-capstone writes it: the agent, the contract tests, the docs skeletons and a CI workflow. day one
modules/ A pointer only. The tree lived here until 9 Sep 2026; the file says where it went. in part
AGENTS.md The policy a coding assistant reads before it edits. CLAUDE.md and the Cursor rules point at it rather than forking it. day one
README.md This file. day one
SETUP.md The half-hour path from a clone to a green doctor. day one
llms.txt What an agent helping you needs — and what it must not do. Generated. day one
CLAUDE.md Points Claude Code at AGENTS.md. day one
LICENSE MIT. day one
pyproject.toml The package, its dependency groups, and the tool configuration. day one
uv.lock The resolved dependency set. CI installs from it frozen. day one
.github/ CI. It runs every notebook, the full test suite, and the generator’s --check. never
.claude-plugin/ The plugin manifest that ships the course’s own slash commands. day one
.claude/ Skills and subagents for Claude Code, already in the clone rather than installed. They teach a session, read a failing check, fix a setup, answer from the course and walk the capstone hand-in; none writes an exercise answer. day one
.cursor/ Cursor rules, pointing at AGENTS.md. day one
.env.example Every variable the course reads, with empty values. day one
.gitignore What never enters git, including keys and a learner’s own submissions. day one
.python-version The interpreter uv picks. day one

7 paths are withheld by name, whatever the week: .github, docs/instructor, docs/plans, docs/specs, evals, scripts/instructor_pack.py, tests. Each is on that list for a stated reason — tests/ alone holds the solved value of every exercise. The publisher audits the tree it built rather than trusting the copy, and refuses if one of them appears.

Sent in part: docs/, modules/. Guides, the curriculum and the generated index ship; the instructor material, the specs and the plans do not.

Course map

Track When What
Week 0 — Fast lane now, ~3h Environment, packages, contracts, one API call
Week 0 — Courses A–C now, optional Packaging, MCP, data structures
Week 1 — Sessions 1–5 Sep 14–18 Assistants, adapters, structured outputs, tools, first loop
Week 2 — Sessions 6–10 Sep 21–25 Retrieval, grounding, graphs, evals, skills
Week 3 — Sessions 11–15 Sep 28–Oct 2 State, MCP, deploy, defend
Final assignment + certificate weeks 2–3 Source-grounded research assistant
Bonus 1–5 optional Graph RAG, multimodal, multi-agent, memory, teardown
Depth / cookbook / workspaces optional SE fundamentals, Gecko labs, 4 project workspaces

What arrives, and when

This repository grows during the course. Week 0 is here now; each Monday one more week lands and you git pull.

Arrives Date What is added
Week 0 now Everything above except the sessions: the twelve week-0 units, the welcome pages, the bonus track and the whole toolchain (52 paths).
Week 1 Mon 14 Sep unit1
Week 2 Mon 21 Sep unit2
Week 3 Mon 28 Sep unit3

Nothing is hidden behind a permission. A week that has not opened is not in the repository yet, so git pull on the Monday is the whole ritual. Your table of contents lists what you actually have, and names what is still to come in a comment at the end — this table is the schedule, and you have it from day one.

A correction is withdrawn as well as added: the publisher removes a file the current week no longer contains, so a fix actually reaches somebody who already pulled.

Solutions: week 0 and sessions 1–3 carry a solutions/ notebook. From session 4 on, they do not. Each session ships with everything running except one cell, and that cell is yours to solve — a solution would only be that cell, answered. When you are stuck, hint(reveal=True) is the worked answer (it costs marks), and coach(...) answers from the course pages for free.

Week 0

Self-paced. Handed in as a record, never marked. Short on time? Do the four 45-minute units. Courses A–C stay here for the whole course and nothing in the fifteen sessions waits for them.

Fast lane

# Unit You leave able to Exercise
1 The environment Prove which Python and repo environment will run the course notebook
2 Packages and documentation Read an installed package instead of guessing its API notebook
3 Classes and contracts Turn a prose requirement into a typed boundary notebook
4 Calling a real API Make one bounded HTTP call through an adapter you own notebook

Course A — Software engineering foundations

Course B — MCP

Course C — Data structures for agents

Weeks 1-3

Each live session is one directory under units/en/unit1/, unit2/ or unit3/. Exercise opens the notebook you work in; Demo is the one run in class. A session that has not happened yet may not be in your copy — git pull.

# Day Session You leave with Exercise Demo
1 Mon 14 Sep Configure the assistant Repo instructions the assistant must read before it edits notebook —
2 Tue 15 Sep Call a model through the adapter One adapter, two lanes, failures that refuse instead of traceback notebook demo
3 Wed 16 Sep Structured outputs A typed answer; retry once, then refuse notebook demo
4 Thu 17 Sep Bounded tools Read-only tools whose boundaries you can prove notebook demo
5 Fri 18 Sep A deterministic mini-agent A loop that stops, notices repeats, and exits safely notebook —
6 Mon 21 Sep A retrieval baseline A corpus loader and lexical retrieval — plus the ways it fails notebook RAG on your laptop
7 Tue 22 Sep Retrieval and grounding metrics Hit rate, grounding rate, and the cost of one fix notebook —
8 Wed 23 Sep Loops and graphs Chain vs loop vs graph; illegal edges do not move notebook —
9 Thu 24 Sep Trace and evaluate A redacted event log and named error buckets notebook —
10 Fri 25 Sep Skills and an ADR A SKILL.md and a decision that names its reversal notebook —
11 Mon 28 Sep State and memory Session state, a retention policy, cross-user isolation notebook —
12 Tue 29 Sep MCP architecture Host / client / server; a surface read as claims notebook —
13 Wed 30 Sep Build and secure an MCP server A fetch guard that refuses before it fetches notebook —
14 Thu 1 Oct Deploy and operate A smoke test and the rollback sentence notebook —
15 Fri 2 Oct Defend the capstone A demo, then a failure diagnosed from your own traces — —

Session 13 uses an instructor-hosted Gecko MCP surface; the URL is handed out in class.

Final assignment and certificate

The final assignment is a source-grounded developer research assistant: it answers from data/corpus/, cites document ids, and refuses when nothing supports the claim. It is graded privately and earns the certificate. You build it in your own public repository: from the course folder, uv run bootcamp final new ../my-final-assignment, then cd ../my-final-assignment, uv sync, commit uv.lock, and gh repo create my-final-assignment --public --source . --push. Practise with uv run pytest and uv run bootcamp final grade, and hand in with uv run bootcamp final submit --github . Brief: units/en/unit2/capstone/. Every command, to your final score: the final assignment tutorial.

It is separate from the Gecko capstone, the store project presented on Friday 2 October, which lives in its own repository. Its code stays in your own my-gecko-buyer; you hand in a link to it by 5 October with uv run bootcamp gecko submit --repo ../my-gecko-buyer --github --push, or from the browser: hand in by 5 October.

A pass needs a score of at least 30% and every critical question. The final set has 15 questions, 6 of them critical, so any pass is at least 6/15 (40%). The starter refuses correctly and answers nothing: 3/10 (30%) on the practice set and 4/15 (27%) on the final set, failing both gates. Your latest submission counts. A pass earns an Ed25519-signed certificate anyone can verify. Details: final_assignment/README.md.

Bonus and extras

Optional. Never counted. Never required for the certificate.

Commands

uv run bootcamp doctor                       # this machine
uv run bootcamp check ch03                   # one session scorecard
uv run bootcamp progress                     # every session, one tally
uv run bootcamp submit ch03 --github    # write submissions//ch03/

Checks judge behaviour, not wording. How to hand work in: units/en/unit0/how-to-submit.mdx. The generated index: docs/course-index.md.

Safety

Never place secrets in CLAUDE.md, AGENTS.md, Cursor rules, MCP JSON, issues, prompts, or commits. External-tool exercises use recorded/offline mode or the instructor-hosted fork. No wallets, no payment credentials, no production API keys, no mainnet path — ever — in class exercises.

Ask a coding assistant to inspect, propose a plan, and make the smallest change. Review the diff yourself. The loop lives in AGENTS.md.

License

MIT — see LICENSE.

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add gecko-academy/dev3pack-cohort-2026-09
New to MCP? Start with the mcpskill.org guide →