This hackathon is designed for participants who already had hands-on sessions with GitHub Copilot and are ready for a more open-ended challenge.
The format is intentionally simple:
Here is the challenge. Build it. Make it runnable. Make it testable. Make the repository agent-ready.
The goal is not only to build a working application, but also to learn how to use GitHub Copilot in a more advanced and realistic development workflow:
- Exploring an unknown problem domain.
- Creating a project structure from scratch.
- Writing useful issues and acceptance criteria.
- Generating and improving tests.
- Creating documentation that helps both humans and AI coding agents.
- Using Copilot Chat, Copilot Edits, agent mode, custom instructions, and issue-driven development.
The challenges are divided into foundation and advanced levels, with both fun and business-oriented topics.
As an alternative to greenfield projects, participants can also choose a legacy/refactoring track using the Gilded Rose Refactoring Kata.
Each team should deliver a GitHub repository that contains a working application and enough supporting material to make the project understandable and maintainable.
Teams can use any programming language, framework, and application style.
Every repository should include:
README.mdwith quick start and assumptions.- A working core flow for the selected challenge.
- At least 2-3 key GitHub Issues (or a small TODO backlog in
README.md). - Basic tests for the most important business logic (a few focused tests are enough).
- Optional but recommended:
.github/copilot-instructions.mdandAGENTS.md. - Optional but recommended: CI workflow.
The repository should be easy for both humans and AI coding agents to understand.
A good solution should document:
- How to run the application.
- How to run the tests.
- The domain model.
- Important business rules.
- Architectural decisions.
- Known limitations.
- Suggested future improvements.
- What Copilot should and should not do when editing the codebase.
Teams should be able to explain how they used Copilot during the challenge.
Examples:
- Using Copilot Chat to explore the domain.
- Asking Copilot to propose a project structure.
- Generating a first version of tests.
- Asking Copilot to explain unfamiliar code.
- Using Copilot Edits to apply changes across multiple files.
- Using agent mode to implement a GitHub Issue.
- Creating custom instructions for the repository.
- Reviewing and correcting Copilot-generated code.
| Type | Challenge |
|---|---|
| Fun | Movie Night Decider |
| Fun | Weekend Activity Planner |
| Business | Mini Expense Claims |
| Business | Support Ticket Triage Board |
| Type | Challenge |
|---|---|
| Fun | Quiz Night Engine |
| Fun | Escape Room Builder & Solver |
| Business | Intelligent Support Operations Hub |
| Business | Developer Self-Service Portal |
- Gilded Rose Refactoring Kata (alternative to greenfield projects)
Explain that teams should focus on more than just code generation. The goal is to build a repository that a future developer or coding agent can continue working on.
- Create new folder.
- Copy the challenge they want to do to that folder.
- Get started.
- Create a new folder for your team work.
- Clone emilybache/GildedRose-Refactoring-Kata into that folder.
- Pick one language folder (for example:
python,TypeScript,csharp.xUnit,Java). - Read the requirements first: GildedRoseRequirements.md.
- Run the existing tests and confirm the baseline before changing code.
- Implement support for
Conjureditems and improve code quality through small, safe refactoring steps. - Keep constraints from the kata: do not alter the
Itemclass orItemsproperty. - Work in your own repository/fork and do not submit your solution as a PR to the upstream kata repository.
Suggested framing:
- Pick a challenge track (greenfield challenge or Gilded Rose kata).
- Create a repository.
- Break the work into issues.
- Add Copilot and agent instructions early.
- Build the core flow.
- Add tests and CI.
- Document what works and what does not.
- Demo the result and explain how Copilot was used.
For a half-day format:
| Timebox | Activity |
|---|---|
| 20 minutes | Challenge selection and repo setup |
| 30 minutes | Domain model, issues, and architecture sketch |
| 90 minutes | First implementation block |
| 30 minutes | Test and CI focus |
| 45 minutes | Second implementation block |
| 30 minutes | Documentation and agent-readiness cleanup |
| 30 minutes | Demos and wrap-up |
For a full-day format:
| Timebox | Activity |
|---|---|
| 30 minutes | Challenge selection and repo setup |
| 45 minutes | Domain model, issues, architecture, and agent instructions |
| 2 hours | First implementation block |
| 45 minutes | Tests, CI, and refactoring |
| 2 hours | Second implementation block |
| 45 minutes | Documentation, demo prep, and cleanup |
| 60 minutes | Demos and discussion |
A team is considered done when:
- The app can be started locally.
- The main happy path works.
- At least 2-3 core business rules are implemented.
- Core logic has at least a small set of automated tests.
- The repository has enough notes so someone else can continue.
- The team can explain what Copilot did well and where human guidance was needed.
Encourage teams to:
- Ask Copilot to explain the domain before coding.
- Ask Copilot to generate edge cases.
- Ask Copilot to write tests before implementation.
- Use issues as the task boundary for agent mode.
- Review generated code critically.
- Keep business logic out of controllers.
- Keep documentation close to the code.
- Add clear naming and folder conventions.
Common mistakes:
- Letting Copilot generate too much code without review.
- No tests.
- No clear domain model.
- Business rules hidden inside API controllers.
- README written at the very end and barely useful.
- Large generated code dumps that nobody understands.
- CI added too late.
- No acceptance criteria in issues.
Ask each team:
- What did you build?
- What is the most important business or domain rule?
- How did you use Copilot?
- What did Copilot get wrong?
- What did you do to make the repository agent-ready?
- How would a future coding agent continue the project?
- What would you improve with more time?
If participants struggle to choose, recommend:
- Fun: Movie Night Decider
- Business: Support Ticket Triage Board
- Fun: Quiz Night Engine
- Business: Developer Self-Service Portal
These challenges provide a good balance of familiar domain logic, clear rules, meaningful tests, and realistic Copilot usage.
