This is my first approach and a demo project exploring spec-driven development with the OpenSpec framework.
Goal: Building my own portfolio website using a spec-driven workflow with AI-assisted development.
AI Assistant: This project is developed with Claude Haiku 4.5 to demonstrate AI-guided spec-driven development.
Spec-driven development is a workflow where specifications guide the entire project lifecycle. Instead of writing code first, you:
- Propose a change with clear goals and context
- Design the solution with detailed specs
- Implement the tasks defined in the specs
- Archive the completed work for historical reference
This approach ensures better planning, clearer requirements, and easier collaboration.
spec-driven-demo/
├── lorenzo_ceglia/ # The actual React + Vite app
├── openspec/ # OpenSpec framework folder (specs & changes)
└── README.md
Create a new change directory with:
- proposal.md — High-level overview and goals
- design.md — Technical design and architecture
- tasks.md — Actionable tasks (ideally 2-hour chunks)
The change lives in openspec/changes/ while you work on it.
Implement the tasks and apply the specs to your project. The framework:
- Reads your specs
- Generates tailored implementation guidance
- Applies changes to your codebase
Once complete, move the change to openspec/changes/archive/ for historical record-keeping. This preserves your decision-making process and design rationale.
When a task is done, manually move generated specs from archive/[task]/specs/ to openspec/specs/ to make them "active" for future reference.
openspec/specs/— Active, promoted specs that guide developmentopenspec/changes/— In-progress changes being worked onopenspec/changes/archive/— Completed, archived changes with their specs.opencode/— Custom commands and AI skills for this project
This project uses OpenCode to run OpenSpec commands. OpenCode provides custom commands configured in .opencode/command/:
opsx-propose— Create a new spec-driven changeopsx-explore— Explore and understand existing specsopsx-apply— Apply a change to your projectopsx-archive— Archive a completed change
These commands integrate OpenSpec seamlessly into your VS Code workflow, handling the spec-driven development lifecycle with AI guidance.
cd lorenzo_ceglia
npm installnpm run devnpm run buildLinting and formatting with Biome:
npm run lint
npm run format- Frontend: React 19 + TypeScript, Tailwind 4.2.2, Storybook 10.3.4
- Build Tool: Vite
- Linting/Formatting: Biome (no ESLint, no Prettier)
- Package Manager: npm
This is a learning project. The OpenSpec workflow helps me:
- Document decisions upfront
- Break work into clear, manageable chunks
- Preserve architectural decisions for future reference
- Experiment with spec-driven development practices
Feel free to explore the openspec/ folder to see past proposals, designs, and archived changes!
Framework: OpenSpec
Date Started: April 3, 2026