Lesson 01 | Overall Idea & Act 1: Getting Started

⏱ Est. reading time: 4 min Updated on 5/7/2026

A practical tutorial for beginners. No pure theory—just follow along and build it.


Overall Idea

This tutorial follows a real development process. Every episode solves a real problem and introduces a real concept.

  • 14 Episodes, each with clear deliverables
  • Storyline: From an idea → 1529 lines of code → A working calculator
  • Code Volume: 3 files (HTML 57 lines / CSS 535 lines / JS 937 lines) + 1631 lines of tests
  • Rhythm: Build → Encounter issues → Learn concepts → Continue building

Act 1: Getting Started (Episodes 1-3)

From "I want to build a calculator" to "starting to write code"

Episode 1: I Just Want to Build a Calculator

Scene: You open your computer with one thought—"Build a calculator that elderly people can use."

  • Specific idea: Elderly mode + Standard mode, pure frontend, works offline
  • Start with one command: /gsd-new-project
  • What GSD did: Asked a few key questions and turned a vague idea into a structured project
  • What we got: .planning/ directory, PROJECT.md, 34 requirements, 4-phase roadmap
  • Core concept: AI-assisted development isn't "write code for me", it's "help me think clearly"

Output Files:

  • .planning/PROJECT.md — Project definition (core value, constraints, target users)
  • .planning/REQUIREMENTS.md — 34 requirements (CALC/DISP/INPT/ELDR/STND/MODE/HIST/A11Y/RESP)
  • .planning/ROADMAP.md — 4-Phase roadmap
  • .planning/STATE.md — Project state
  • CLAUDE.md — Project constraints file (GSD workflow rules are written here)

Command: /gsd-new-project --auto


Episode 2: Researching What I Hadn't Considered

Scene: GSD automatically ran a round of research and found issues I hadn't thought of.

  • Floating-point precision: 0.1 + 0.2 = 0.30000000000000004, what's going on?
  • WCAG AAA: Elderly mode needs a 7:1 contrast ratio, how do we test that?
  • How big should buttons be: Where did 80px come from? (Elderly finger touch research)
  • How research becomes requirements: You only write down what you know; what you don't know gets missed
  • When can we use --skip-research?
  • Core concept: Researching before building is much more reliable than guessing

Output Files:

  • .planning/research/domain-research.md — Domain research (accessibility standards, elderly user habits)
  • .planning/research/stack-research.md — Tech stack research (floating-point precision solutions, CSS variables)
  • .planning/research/SUMMARY.md — Comprehensive research summary

Command: Built into /gsd-new-project (triggers automatically)


Episode 3: Defining Architecture—Or Else We Rework Everything Later

Scene: Before starting Phase 1, lock down key decisions. Once frozen, downstream tasks won't ask again.

  • Why not use eval()? (Security + control — CALC-08 security requirement)
  • What is the Shunting-yard algorithm? (In plain English: queuing up an expression to calculate by priority)
  • What about floating-point precision? (Multiply by 10^10 to calculate as integers, then divide back)
  • How do we store history? (Max 10 entries, FIFO, localStorage)
  • How do we record discussions: Traces in DISCUSSION-LOG.md
  • Core concept: Discuss first, then code; freeze decisions in CONTEXT.md

Output Files:

  • .planning/phases/01/CONTEXT.md — Frozen design decisions (engine architecture, precision scheme, history strategy)
  • .planning/phases/01/DISCUSSION-LOG.md — Discussion process

Command: /gsd-discuss-phase 1