Portable challenge packages for MLH microhackathons.
Packages live under challenges/, one directory per package, named after its
id; grouping folders such as challenges/beginner/<id> also work. Every row
links to the package's own README.
| Challenge | Description |
|---|---|
| hello-world | Meet your AI guide and make your first file. |
| vibe-coding-mad-libs | Fill four blanks, and Pi builds the web app you described. |
| birdsbirdbirds | Draw a bird and watch it fly across the sky. |
| glitch-invaders | Shoot the bugs, then debug the three that fight back using Sentry evidence. |
Challenges follow the contract in boothstrap.sh's challenge spec and authoring guide; agents working here start from AGENTS.md.
CI runs on every pull request and on every push to main, on Ubuntu with
Node 26. It runs npm ci, then:
npm run verify: runsboothstrap dev --verifyon every package underchallenges/and fails when two packages share an id or a package sits at the repo root or in another top-level directory instead of underchallenges/.npm test: the tests (test/*.test.mjs); their rules are in docs/style/testing.md.npm run lint: markdownlint over every Markdown file.
To run them locally, use Node ≥ 26.4 and, from the repository root:
npm ci
npm run verify
npm test
npm run lintTo try one package alone, run npx boothstrap dev challenges/hello-world. A
package's dependencies install through its own install hook, never at the
root.
- docs/cloud-agents.md: set up a cloud agent.
- docs/style/development.md: code style.
- docs/style/markdown.md: Markdown style.
- docs/style/testing.md: test style.