JAM.26
WORKSHOPS / DAY 1 / Planning & Development Workflow
YOUR EXERCISE_
SEASON 2026 // DAY 01 OF 03
ai-programming-jam.shoug-tech.com / workshops / day-1
README.md

# Planning and Development
Workflow

Before you start building for the competition, you need a repeatable way to go from "here is what the application should do" to "here is a working feature."

Today you will practice breaking down requirements, visualizing how an application works in Excalidraw, planning the interface in Variant, setting up your development environment, using version control, and directing Codex or Claude Code during implementation.

AI can generate substantial parts of your application. Your job is to direct that work, understand the objective, review what changed, run the application, test the result, investigate problems, adapt when requirements change, and decide what happens next.

You are not expected to finish an application today. You are expected to leave with a workflow that you can repeat independently during the Programming Jam.

Today you'll practice
Plan → Design → Build → Test → Commit
You'll use
Excalidraw, Variant, VS Code, Git, Codex, Claude Code
By the end
One working, tested, committed feature
00

## What You Need

Get these ready before the practical portion begins. Ask an instructor if something is not working.

Accounts
GitHub Claude OpenAI / Codex Variant
Software
Visual Studio Code Git Node.js npm Modern Browser Claude Code Codex
You do not need prior experience building a complete web application. You should be comfortable opening files and folders, using a browser, and following commands demonstrated by the instructor.
01

## Think Before You Build

AI can generate code very quickly, but somebody still has to define what the application is actually supposed to do.

Before implementation begins, you should be able to explain the application's users, pages, features, actions, data, and expected behavior.

How to break down a requirement

Planning also improves AI output. The more clearly you can describe the objective, behavior, and constraints, the more useful the AI assistant can be.
Important: Planning does not mean designing every detail before you start. You only need enough understanding to know what you are building, what should happen, and how you will verify that it works.
02

## Functional Planning with Excalidraw

Excalidraw is where you visualize how the application functions. You are not creating a formal enterprise architecture diagram.

Your diagram should help you answer one simple question:

What happens when the user does something?

Your diagram should show

User → Interface → Action → Application Logic → Data → Result
IMAGE
Example Excalidraw Diagram
Add a screenshot of the instructor's Study Task Tracker functional diagram here.
03

## UI/UX Planning with Variant

Your Excalidraw diagram describes how the application works. Variant helps you explore how that functionality should be presented to the user.

Example design prompt

UI PLANNING PROMPT
Design a simple web application dashboard for university students to manage study tasks. The interface should allow the user to: - view current tasks - add a new task - see the course and due date - mark tasks as complete - delete tasks Prioritize clarity and usability. Include: - a clear page hierarchy - an obvious primary action for adding a task - readable task cards or rows - clear completed and incomplete states - a useful empty state Keep the design simple enough to implement during a beginner workshop.
Remember: the generated interface is a proposal. You decide whether the navigation, hierarchy, actions, and feedback actually make sense.
IMAGE
Example Variant Design
Add a screenshot of the Study Task Tracker Variant output here.
04

## Your Development Environment

You do not need to memorize commands blindly. Understand what each part of your development environment is responsible for.

Two commands you will use constantly

terminal
project-folder
# Install the packages listed by the project
npm install

# Start the local development server
npm run dev

The exact development command can vary between projects. Check package.json or the repository README if npm run dev is not available.

When something breaks

Terminal → Browser Console → Network → Relevant Code → AI Assistant
Do not skip directly to changing code. First collect evidence about what is actually failing.
05

## Version Control with Git & GitHub

Git records the history of your project. GitHub gives that repository a remote home and makes collaboration, backup, and later deployment easier.

  • Repository is the version-controlled project
  • Commit is a saved checkpoint
  • Push sends local commits to GitHub
  • Pull brings remote changes to your machine
  • Commit meaningful working checkpoints
  • Check what changed before committing
  • Avoid allowing large amounts of AI-generated code to accumulate without a checkpoint
  • Use version history as a safety net when experiments go wrong

Essential Git workflow

terminal
git-basics
# See what has changed
git status

# Stage your current changes
git add .

# Save a meaningful checkpoint
git commit -m "Implement task creation"

# Send your commits to GitHub
git push

# Get the newest remote changes
git pull
Commit when something works. A useful commit gives you a known-good point you can return to if the next change breaks the application.
06

## Using Codex & Claude Code as Engineering Assistants

Codex and Claude Code can inspect projects, implement features, modify multiple files, explain code, investigate bugs, run commands, refactor implementations, and assist with testing.

They can write a small amount of code or a very large amount of code. That is not the important distinction.

You remain responsible for defining the objective, directing the work, reviewing the result, testing behavior, debugging problems, and verifying that the application actually satisfies the requirement.

Describe → Generate or Modify → Review → Run → Test → Debug → Verify

Give AI useful context

AI output is not automatically correct. A generated feature is only finished after you have verified its behavior.
07

## Prompt Templates You Can Use

These are starting structures, not magic formulas. Change them to match the problem you are solving.

01 / understand before implementing
I am working on the following requirement: [REQUIREMENT] Before writing any code, help me break this requirement down into: - users involved - required functionality - pages or components - user actions - data requirements - important interactions Identify anything that is unclear or that I should decide before implementation. Do not implement anything yet.
Use this: when you receive a requirement and need to understand the problem before implementation.
02 / implement a defined task
I want to implement the following feature: [FEATURE] Expected behavior: [EXPECTED BEHAVIOR] Relevant constraints: [CONSTRAINTS] First inspect the existing project and determine which files are relevant. Explain your implementation approach, then make the required changes. Do not modify unrelated functionality. After implementation, tell me: 1. what you changed 2. what I should test 3. anything that still needs verification
Use this: once you understand the feature and are ready to implement it.
03 / debug using evidence
I expected: [EXPECTED BEHAVIOR] Instead, I observed: [ACTUAL BEHAVIOR] Error message or evidence: [ERROR / CONSOLE OUTPUT / OBSERVATION] Investigate the likely cause before changing the code. Explain what evidence supports your diagnosis. Then propose the smallest appropriate fix. After making the change, tell me exactly how I should verify that the problem is resolved.
Use this: when behavior is wrong or an error occurs. Give the assistant evidence instead of only saying "fix it."
04 / review what changed
Review the changes you just made. For each changed file, explain: - why it was changed - what behavior it is responsible for - any assumptions you made - any risks or edge cases I should test Do not make additional changes unless you identify a clear problem that requires one.
Use this: after a substantial AI-generated change when you need to understand what was modified before moving on.
08

## Worked Example

Your instructor will demonstrate the complete workflow using a small application called the Study Task Tracker.

Instructor Example / Requirement Brief

Study Task Tracker

Build a small web application that helps university students keep track of academic tasks.

A student should be able to view current tasks, add a new task, mark a task as completed, and delete a task.

User
  • University student
Task Data
  • Task title
  • Course
  • Due date
  • Completion status
Required Actions
  • View tasks
  • Add task
  • Complete task
  • Delete task
Scope
  • No authentication required
  • No database required
  • Focus on the workflow

Before building, ask questions

The requirement tells you what the application needs to accomplish. It does not automatically answer every product and implementation decision.

The complete walkthrough

  1. Read the requirement and identify the user, behavior, pages, actions, and data.
  2. Use the first AI prompt to identify unclear requirements and implementation decisions.
  3. Sketch the Study Task Tracker flow in Excalidraw.
  4. Turn the functional plan into an initial interface concept in Variant.
  5. Open the project in VS Code and explain the project structure.
  6. Run npm install if dependencies need to be installed.
  7. Run the application locally with npm run dev.
  8. Create or connect the GitHub repository.
  9. Create an initial Git checkpoint.
  10. Give Codex or Claude Code a clearly defined implementation task.
  11. Review the files and code changed by the assistant.
  12. Run the application again.
  13. Test the implemented behavior.
  14. If something is wrong, collect evidence and investigate the problem.
  15. Use AI to assist with diagnosis and debugging where useful.
  16. Verify that the feature now behaves as expected.
  17. Commit the working implementation to GitHub.
Requirement → Plan → Diagram → Design → Project → AI Implementation → Review → Run → Test → Debug → Verify → Commit
IMAGES
Worked Example Screenshots
Add screenshots showing the Study Task Tracker progression: Excalidraw → Variant → VS Code → Running App → GitHub.
VIDEO
Instructor Demo Recording
Add the recorded walkthrough here after the workshop or once the demonstration video is ready.
The feature is not the lesson. The lesson is the workflow used to move from an unclear requirement to a tested and committed implementation.
09

## Your Exercise

Now repeat the same workflow yourself, but with a different application. Do not copy the Study Task Tracker implementation.

Participant Exercise / Requirement Brief

Campus Event Board

Build a small web application that helps university students discover campus events.

A student should be able to view available events and filter them by category. The interface should also allow a new event to be added.

User
  • University student
Event Data
  • Event name
  • Category
  • Date
  • Location
  • Short description
Required Actions
  • View events
  • Add an event
  • Filter by category
Scope
  • No authentication required
  • No database required
  • Data may exist only while the page is running

Decisions you need to make

The requirement intentionally leaves some details open. You must decide how your application should behave.

Your workflow

  1. Read the Campus Event Board requirement.
  2. Identify the users, pages or areas, features, actions, and data.
  3. Identify unclear requirements and make reasonable decisions.
  4. Create a functional diagram in Excalidraw.
  5. Create or refine an interface concept in Variant.
  6. Open or create your project in Visual Studio Code.
  7. Install dependencies if required.
  8. Verify that the project runs locally.
  9. Create or connect the project to a GitHub repository.
  10. Make an initial commit before major implementation begins.
  11. Choose one small feature to implement first.
  12. Write down its expected behavior.
  13. Use Codex or Claude Code to assist with implementation.
  14. Review what the AI changed.
  15. Run the application.
  16. Test the implemented behavior.
  17. Investigate and debug anything that does not work.
  18. Verify the feature behaves as expected.
  19. Commit your working checkpoint.

You are done when...

10

## Troubleshooting

Something going wrong is part of development. Start with evidence.

If this happens

"The AI changed a lot of files and I don't know what happened."

Why it happens The task may have been too broad, or the assistant may have made implementation decisions you did not expect.
What to do Stop making additional changes. Review the changed files, ask the assistant to explain what it modified, run the application, and identify which parts actually work before continuing.
If this happens

"I gave AI a large task and now I cannot tell which part is broken."

Why it happens Large changes introduce many possible failure points at once.
What to do Return to the requirement and isolate the failing behavior. Define what should happen, what is actually happening, and which part of the application is most likely responsible.
If this happens

"My application will not run locally."

Possible causes Missing dependencies, the wrong directory, incorrect commands, configuration problems, occupied ports, or code errors.
What to do Read the terminal output first. Confirm the current directory. Check whether dependencies are installed. Check the scripts in package.json. Read the first useful error instead of only the final line of output.
If this happens

"The page loads, but the feature does not work."

Possible causes The implementation may not match the expected behavior, an event handler may not run, data may not update correctly, or a runtime error may occur.
What to do Compare expected behavior with actual behavior. Check the browser console. Reproduce the problem consistently. Then give the AI assistant those observations.
If this happens

"The AI says it fixed the bug, but it is still broken."

Why it happens The assistant may have made an incorrect diagnosis, may not have had enough evidence, or may have verified only that the code compiled.
What to do Do not keep asking for random fixes. Reproduce the failure again, collect new evidence, and update the debugging prompt with exactly what changed and what still fails.
If this happens

"Git says I have changes and I don't know whether I should commit them."

What to check Run git status. Understand which files changed. Run and test the application.
What to do Commit when the project is in a meaningful state you would be comfortable returning to later.
Instructor help is not the last resort. If you have collected evidence but still do not understand what is happening, show the instructor what you expected, what you observed, and what you already tried.
11

## Self-Check Before You Leave

If you cannot complete one of these, ask an instructor before the workshop ends.

12

## Resources

Use official documentation when you need to go beyond what we covered in the workshop.

Your goal is not to memorize everything. Know the workflow, know how to find evidence when something goes wrong, and know where to find documentation when you need more information.