Version: 1.9
Last updated: June 16, 2025
This front first method is a structured process for collaborative AI assisted coding.
Build the front end first and use the front end as the primary source of truth for defining backend requirements. I.e., the validated UI/UX becomes a specification that drives all subsequent technical decisions.
Sometimes style elements express functional intent, but sometimes style elements are frills chosen purely for aesthetic appeal. Because the front end is being used as a tool for AI - human communcation, it is vital that we distinguish style elements that indicate functional intent from frills that are added for aesthetic appeal. To avoid cluttering the context windows with frills that could be misinterpreted as indicating something that was never intended, styles that communicate functional intent should be separated from frills by storing their respective .css files in the following folder structures:
\src\styles\frills
\src\styles\indicators\
Use Gherkin sytnax to define acceptance criteria (Scenario: Given, when, then). When possible, convert acceptance criteria into test files (a.k.a. spec files) for a tool like vitest. Do this before implementing functionality.
Break down all complex requirements and features into small, simple, individually implementable, and testable steps. For each step, clearly define inputs, processing, and expected outputs.
- Phases are major deliverables with clear governance states
- Steps are integrated components within a phase that are developed iteratively together due to their interdependencies
Each phase is in one of three states, analogous to states of matter:
- Creating: The current phase being actively worked on. It is fluid, flexible, and evolving; like a gas.
- Revising: The previous phase (N-1) can still be modified if needed. It is moldable but more structured; like a liquid.
- Locked: All earlier phases (N-2 and before) cannot be changed. It is fixed and stable; like a solid.
This creates a sliding window where only the current phase and the immediately previous phase can be modified, preventing endless backward iteration while maintaining necessary flexibility.
Example: When working on Phase 6 (Engineering):
- Phase 6: Creating
- Phase 5: Revising
- Phases 1-4: Locked
We are in the process of figuring out the best way to break up the process in accordance with the above tenets. The following list is the currently planned sequence of phases:
- Research & Planning (PRD)
- Content & Navigation (Sitemap)
- Interface & Layout (Wireframe)
- Functional Design (Blueprint)
- Technical Design (Technical Design Document)
- Scaffolding (Test Files & Specifications)
- Implementation (Prototype(s))
- Internal Testing (Alpha version)
- External Testing (Beta version)
- Release (Production version)