nova-cli 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a922e3658e297f45eca7ab867a3166f074f1f33004378afb6a1306884a91f3a
4
- data.tar.gz: 52a94731da81d5a3766ea5af424c73a7079faf556a55dc6b443a8ae410342d39
3
+ metadata.gz: 38ce58b8ad7d0916257e95ca92e2a48dfcf64ecbe06eef34801467b94ac23258
4
+ data.tar.gz: b24a76aaca18e39939567878ac56a7c525cf2c16d780d9016c4a9c207ac09ae2
5
5
  SHA512:
6
- metadata.gz: b3147e1f129017d23175bd3bdada80aa05db4ed591fcfdff9c3d9291809ad579f4f89049246942185cee9a025ef43b043881b374fed735eb287a9d4b264ed05d
7
- data.tar.gz: 51d0210c25a2e244a6cb789e157f40733b2d4bfda0b0c079d872b824107e140439133320015de379d9c3d62c1ec2e9c23d1db339e90d2df368904a052287454b
6
+ metadata.gz: d4d32571d86db6d71251046763c758ebd6fbba19ae9dfad6dd46074751562eaa9228ad6d829e1efd2aa18256cc20c100d49471260d1c1737cf2deaf1eb5458ce
7
+ data.tar.gz: 69d6828bf2158e249718d130ea90a9816dfe8fa51a8a8190d57afb1678928ba8e29d6a68e4abff5e1bf3af446868858645d77f566634db8cdc645f7c350aad10
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Nova
2
2
 
3
- Nova is a command-line tool that generates a standardized project structure for product development and documentation. It guides teams through a structured workflow from strategic planning to code generation in an AI-driven environment.
3
+ Nova is a command-line tool that generates a cross-functional toolkit for PMs & Devs to write both product documentation and code in the same unified Windsurf or Cursor window. It embraces the idea that projects & features start as abstract ideas and move through a process of definition, starting with natural language and culminating in code syntax. By having a unified window for the agent to work across both documentation and code, Nova accelerates the entire development workflow, from scoping through to deployment.
4
4
 
5
5
  ## The Nova Process
6
6
 
@@ -9,9 +9,10 @@ The Nova process guides product development through a series of steps, each buil
9
9
  1. **Big Picture** → Define the strategic vision and goals
10
10
  2. **User Stories** → Break down the vision into specific user needs
11
11
  3. **Design System** → Establish the visual language and UI components
12
- 4. **Prompts** → Create development prompts for implementation
12
+ 4. **Tasks** → Create actionable implementation tasks (includes default app generation tasks)
13
+ 5. **Coding** → Generate application code in the code/ directory
13
14
 
14
- Each step has its own directory with specialized templates and examples to guide your work.
15
+ Each step has its own directory with instructions and examples to guide your work.
15
16
 
16
17
  ## Installation
17
18
 
@@ -23,26 +24,12 @@ gem install nova-cli
23
24
 
24
25
  Once installed, you can run the command `nova` from your terminal.
25
26
 
26
- If you want to build and install from source:
27
-
28
- ```bash
29
- git clone https://github.com/LaunchPadLab/nova.git
30
- cd nova
31
- gem build nova-cli.gemspec
32
- gem install nova-cli-0.1.0.gem
33
- ```
34
27
 
35
28
  ## Usage
36
29
 
37
30
  ```bash
38
31
  # Create a new project structure
39
32
  nova new [app_name]
40
-
41
- # Show version
42
- nova version
43
-
44
- # Show help
45
- nova help
46
33
  ```
47
34
 
48
35
  ## Generated Structure
@@ -51,52 +38,62 @@ When you run `nova new [app_name]`, it creates the following structure:
51
38
 
52
39
  ```
53
40
  [project_name]/
41
+ ├── .windsurfrules
42
+ ├── .cursorrules # Single AI rules file (always active)
54
43
  ├── shape/
55
44
  │ ├── README.md
56
45
  │ ├── 1_big-picture/
57
- │ │ ├── README.md
58
46
  │ │ ├── prd_example.md
59
- │ │ ├── flowchart.md
47
+ │ │ └── flowchart_example.md
60
48
  │ ├── 2_user-stories/
61
- │ │ ├── README.md
62
49
  │ │ └── example.md
63
50
  │ ├── 3_design-system/
64
- │ │ ├── README.md
65
- │ │ └── design_decisions.md
66
- │ ├── 4_prompts/
67
- │ │ ├── README.md
68
51
  │ │ └── example.md
69
- ├── code/
70
- ├── design-system/
52
+ │ └── 4_tasks/
53
+ ├── 1_generate_application.md
54
+ │ └── 2_generate_static_pages.md
55
+ └── code/
71
56
  ```
72
57
 
73
- - `shape/README.md`: Comprehensive documentation on how to structure product requirements and features
74
- - `shape/1_big-picture/`: High-level strategic documents that define the vision and direction
75
- - `shape/2_user-stories/`: User-focused requirements that capture specific needs and acceptance criteria
76
- - `shape/3_design-system/`: Visual language and UI component documentation to ensure consistency
77
- - `shape/4_prompts/`: Structured sequential tasks for AI-assisted implementation
78
- - `code/`: Directory for actual code implementation
79
- - `design-system/`: Directory for implemented design system code and assets
58
+ ## Default Tasks
80
59
 
81
- ## Best Practices
60
+ Nova now includes two foundational tasks by default:
61
+
62
+ ### Task 1: Generate Application
63
+ - Sets up Rails 8 with PostgreSQL, Tailwind CSS, RSpec, and Cypress
64
+ - Configures Flowbite for UI components
65
+ - Creates a hello world page to verify setup
66
+ - Based on battle-tested Rails application setup
67
+
68
+ ### Task 2: Generate Static Pages
69
+ - Creates static pages with hardcoded data for look & feel iteration
70
+ - Implements design system components
71
+ - Sets up navigation and responsive layouts
72
+ - Allows rapid prototyping before adding dynamic functionality
73
+
74
+ These tasks serve as the foundation for all subsequent development work.
75
+
76
+ ## Task Progress Tracking
77
+
78
+ Nova uses a self-contained progress tracking system where each task file maintains its own progress:
82
79
 
83
- - **Start with Why**: Always begin by understanding the strategic purpose behind the project
84
- - **Focus on User Value**: Keep the user's needs at the center of all planning
85
- - **Be Specific**: Include enough detail for implementation but avoid over-specification
86
- - **Maintain Traceability**: Ensure each document references related documents from previous steps
87
- - **Collaborate Across Disciplines**: Involve all relevant team members in the appropriate steps
88
- - **Iterate and Refine**: The process is not strictly linear - revisit and update documents as you learn
89
- - **Follow TDD**: Follow Test-Driven Development principles when implementing code
80
+ - Use checkboxes `[ ]` and `[x]` to mark task completion
81
+ - Update file tracking tables to show implementation status
82
+ - Add notes or comments inline for important decisions
83
+ - Each task file serves as both the plan and the progress tracker
90
84
 
91
- ## Working with AI
85
+ No separate progress file is needed - everything is tracked where the work is defined.
92
86
 
93
- The Nova framework is designed to work seamlessly with AI development assistants:
87
+ ## AI Assistant Integration
94
88
 
95
- 1. Define your product requirements in the big picture section
96
- 2. Break down functionality into user stories
97
- 3. Establish a design system for consistency
98
- 4. Write sequential development prompts in the prompts directory
99
- 5. Share these prompts with AI assistants to generate implementation code
89
+ Nova generates a single `.cursorrules` file at the project root that provides comprehensive guidance for AI assistants. This file:
90
+
91
+ - Is always active (no need to navigate to specific directories)
92
+ - Provides context-aware rules based on whether you're in `shape/` or `code/`
93
+ - Enforces Nova's workflow and best practices
94
+ - Guides the AI through the entire development process
95
+
96
+ The AI will understand the Nova workflow and help you maintain proper documentation-to-code traceability throughout your project.
100
97
 
101
98
  ## Mermaid Flowcharts
102
99
 
@@ -115,3 +112,20 @@ With this extension installed, you'll be able to preview Mermaid diagrams in the
115
112
  ## License
116
113
 
117
114
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
115
+
116
+ ## Best Practices
117
+
118
+ - **Start with Why**: Always begin by understanding the strategic purpose behind the project from the PRD.
119
+ - **Focus on User Value**: Keep the user's needs (from user stories) at the center of all planning and implementation.
120
+ - **Task Granularity**: Break down features into small, manageable tasks.
121
+ - **Iterate and Refine**: The process is iterative. Revisit and update documents in `shape/` and `progress.md` as you learn and make changes during development.
122
+
123
+ ---
124
+
125
+ ## Prompt Library
126
+
127
+ Explore a collection of example prompts for various development tasks in our [Prompt Library](./prompt-library/). These can be adapted for use with AI assistants to help with common setup and generation tasks.
128
+
129
+ ---
130
+
131
+ For questions or suggestions, please contact Ryan Francis (ryan@launchpadlab.com).
@@ -11,32 +11,34 @@ module Nova
11
11
  # - template: name of the template file to use (nil for directories)
12
12
  # - type: optional type for special handling (e.g., 'prefixed_example')
13
13
  FILES = [
14
+ # Legacy support file
15
+ { path: '.windsurfrules', template: 'windsurfrules_template.txt' },
16
+
17
+ # Cursor rules directory and file
18
+ { path: '.cursor', template: nil }, # directory
19
+ { path: '.cursor/rules', template: nil }, # directory
20
+ { path: '.cursor/rules/nova.mdc', template: 'nova.mdc' },
21
+
14
22
  # Main README
15
23
  { path: 'shape/README.md', template: 'readme_template.md' },
16
24
 
17
25
  # 1_big-picture section
18
26
  { path: 'shape/1_big-picture', template: nil }, # directory
19
- { path: 'shape/1_big-picture/README.md', template: 'big_picture_readme_template.md' },
20
27
  { path: 'shape/1_big-picture/prd_example.md', template: 'prd_example_template.md' },
21
- { path: 'shape/1_big-picture/flowchart.md', template: 'flowchart_template.md' },
28
+ { path: 'shape/1_big-picture/flowchart_example.md', template: 'flowchart_example_template.md' },
22
29
 
23
30
  # 2_user-stories section
24
31
  { path: 'shape/2_user-stories', template: nil }, # directory
25
- { path: 'shape/2_user-stories/README.md', template: 'user_stories_readme_template.md' },
26
32
  { path: 'shape/2_user-stories/example.md', template: 'user_story_example.md' },
27
33
 
28
34
  # 3_design-system section
29
35
  { path: 'shape/3_design-system', template: nil }, # directory
30
- { path: 'shape/3_design-system/README.md', template: 'design_system_readme_template.md' },
31
- { path: 'shape/3_design-system/design_decisions.md', template: 'design_decisions_example.md' },
36
+ { path: 'shape/3_design-system/example.md', template: 'design_decisions_example.md' },
32
37
 
33
- # 4_prompts section
34
- { path: 'shape/4_prompts', template: nil }, # directory
35
- { path: 'shape/4_prompts/README.md', template: 'prompts_readme_template.md' },
36
- { path: 'shape/4_prompts/01_generate_app.md', template: 'prompts_examples/01_generate_app.md' },
37
- { path: 'shape/4_prompts/02_generate_styleguide.md', template: 'prompts_examples/02_generate_styleguide.md' },
38
- { path: 'shape/4_prompts/03_generate_static_pages.md', template: 'prompts_examples/03_generate_static_pages.md' },
39
- { path: 'shape/4_prompts/04_authentication_feature.md', template: 'prompts_examples/04_authentication_feature.md' },
38
+ # 4_tasks section
39
+ { path: 'shape/4_tasks', template: nil }, # directory
40
+ { path: 'shape/4_tasks/1_generate_application.md', template: 'tasks_examples/1_generate_application.md' },
41
+ { path: 'shape/4_tasks/2_generate_static_pages.md', template: 'tasks_examples/2_generate_static_pages.md' },
40
42
 
41
43
  # Code directory
42
44
  { path: 'code', template: nil } # directory
@@ -49,8 +51,6 @@ module Nova
49
51
  def generate
50
52
  create_main_directories
51
53
  create_all_files_and_directories
52
- create_windsurfrules_file
53
- create_cursorcontext_file
54
54
  display_success_message
55
55
  end
56
56
 
@@ -86,43 +86,26 @@ module Nova
86
86
  write_file(path.sub("#{app_name}/", ''), content)
87
87
  end
88
88
 
89
- def create_windsurfrules_file
90
- rules = ai_assistant_rules
91
- content = rules.join("\n")
92
- write_file('.windsurfrules', content)
93
- end
94
-
95
- def create_cursorcontext_file
96
- rules = ai_assistant_rules
97
- content = JSON.pretty_generate({
98
- "rules" => rules
99
- })
100
- write_file('.cursorcontext', content)
101
- end
102
-
103
- def ai_assistant_rules
104
- [
105
- "The shape/ folder is where we collaborate to create product & feature documentation. shape/README.md clarifies how we document product & feature requirements and where to put stuff. Look at that file before writing documentation.",
106
- "The code/ folder is where you write code. Do not write code unless I tell you to.",
107
- "Important! Opt for the simplest version of any feature or requirement unless otherwise indicated.",
108
- "Important! Any time a user requests a change to the product shape, even during coding, update the documentation in shape/",
109
- "Be as concise as possible.",
110
- "Follow TDD whenever writing code. Unit tests for back-end using rspec and E2E tests for front-end using Cypress."
111
- ]
112
- end
113
-
114
89
  def display_success_message
115
90
  puts "\nShape project created for #{app_name}!"
116
91
  puts "\nDirectory structure:"
117
92
  puts " #{app_name}/"
118
93
  puts " ├── .windsurfrules"
119
- puts " ├── .cursorcontext"
94
+ puts " ├── .cursor/"
95
+ puts " │ └── rules/"
96
+ puts " │ └── nova.mdc"
120
97
  puts " ├── shape/"
121
98
  puts " │ ├── README.md"
122
99
  puts " │ ├── 1_big-picture/"
100
+ puts " │ │ ├── prd_example.md"
101
+ puts " │ │ └── flowchart_example.md"
123
102
  puts " │ ├── 2_user-stories/"
103
+ puts " │ │ └── example.md"
124
104
  puts " │ ├── 3_design-system/"
125
- puts " │ ├── 4_prompts/"
105
+ puts " │ │ └── example.md"
106
+ puts " │ └── 4_tasks/"
107
+ puts " │ ├── 1_generate_application.md"
108
+ puts " │ └── 2_generate_static_pages.md"
126
109
  puts " └── code/"
127
110
  end
128
111
 
@@ -147,8 +130,8 @@ module Nova
147
130
  create_files_for_path('shape/1_big-picture')
148
131
  end
149
132
 
150
- def create_prompts_files
151
- create_files_for_path('shape/4_prompts')
133
+ def create_tasks_files
134
+ create_files_for_path('shape/4_tasks')
152
135
  end
153
136
 
154
137
  def create_user_stories_files
@@ -0,0 +1,64 @@
1
+ ---
2
+ description: Nova project workflow rules for AI-assisted development
3
+ globs:
4
+ alwaysApply: true
5
+ ---
6
+ ---
7
+ description: Nova project workflow rules for AI-assisted development
8
+ globs:
9
+ alwaysApply: true
10
+ ---
11
+
12
+ # Nova Project Rules
13
+
14
+ You are working in a Nova project that follows a structured product development workflow from abstract ideas to concrete implementation.
15
+
16
+ ## Project Structure
17
+ - `shape/` - Product documentation (no code here)
18
+ - `1_big-picture/` - PRD, flowchart
19
+ - `2_user-stories/` - User stories and their acceptance criteria
20
+ - `3_design-system/` - UI/UX standards and components
21
+ - `4_tasks/` - Implementation tasks with progress tracking
22
+ - `code/` - Application implementation
23
+
24
+ ## Workflow
25
+ 1. **Big Picture**: Define strategic vision and goals
26
+ 2. **User Stories**: Break down into specific user needs
27
+ 3. **Design System**: Establish visual language
28
+ 4. **Tasks**: Create actionable implementation steps
29
+ 5. **Code**: Build features following the tasks
30
+
31
+ ## Key Rules
32
+
33
+ ### When in shape/ (Documentation)
34
+ - Never write code - documentation only
35
+ - Start with "why" before "what"
36
+ - Keep user value central
37
+ - Use Mermaid for diagrams
38
+ - Reference previous sections for traceability
39
+
40
+ ### When in code/ (Implementation)
41
+ - Review shape/ documentation first
42
+ - Follow tasks in shape/4_tasks/
43
+ - Update task checkboxes as you complete work
44
+ - Start with the core page/feature, then pause for review
45
+ - Use Structs for hardcoded data (will become models later)
46
+
47
+ ### Code Quality Standards
48
+ - Rails conventions with RSpec tests
49
+ - Keep methods under 10 lines (use POROs if needed)
50
+ - Name POROs as verbs with single `call` method
51
+ - Components should follow design system
52
+ - Write E2E tests with Cypress
53
+
54
+ ### Task Management
55
+ - Work through tasks sequentially
56
+ - Update file tracking tables (⏳ → ✅)
57
+ - Complete foundational tasks before custom features
58
+ - Pause after major milestones for user feedback
59
+
60
+ ## Remember
61
+ - Maintain documentation-to-code traceability
62
+ - Keep things simple unless specified otherwise
63
+ - Focus on user value in every decision
64
+ - This is an iterative process - expect refinements
@@ -1,74 +1,82 @@
1
- # Product Development Workflow
1
+ # Product Development Workflow for [project_name]
2
2
 
3
- Welcome to the Product Documentation for [project name]! This repository contains a structured workflow for planning, designing, and implementing product features.
3
+ This project utilizes the Nova workflow, a structured approach for AI-assisted product development. This `README.md` (located in `shape/README.md`) provides an overview of the process and project structure.
4
4
 
5
5
  ---
6
6
 
7
7
  ## The Nova Process
8
8
 
9
- The Nova process guides product development through a series of steps, each building on the previous one to create a comprehensive plan for implementation:
9
+ The Nova process guides development through clear, sequential phases:
10
10
 
11
- 1. **Big Picture** Define the strategic vision and goals
12
- 2. **User Stories** Break down the vision into specific user needs
13
- 3. **Design System** Establish the visual language and UI components
14
- 4. **AI Dev Prompts** Create development prompts for AI-assisted development
11
+ 1. **Big Picture (`shape/1_big-picture/`)**: Define strategic vision, goals, and create the Product Requirements Document (PRD).
12
+ * `prd_example.md`: Template and example for your PRD.
13
+ * `flowchart_example.md`: Template for user flows and system diagrams.
14
+ 2. **User Stories (`shape/2_user-stories/`)**: Break down the vision into specific user needs and acceptance criteria.
15
+ * `example.md`: Template for writing user stories.
16
+ 3. **Design System (`shape/3_design-system/`)**: Establish the visual language, UI components, and design standards.
17
+ * `example.md`: Template for documenting design decisions.
18
+ 4. **Tasks (`shape/4_tasks/`)**: Create detailed, actionable implementation task lists for each feature, derived from the PRD and user stories. These tasks include file tracking.
19
+ * `1_example.md`: Canonical template for feature task lists. Name subsequent task files like `2_feature_name.md`, `3_another_feature.md`, etc.
20
+ 5. **Coding (`code/`)**: Implement the application based on the defined tasks. AI assistance is guided by Cursor Rules.
21
+ 6. **Progress Tracking (`progress.md`)**: Monitor overall project status, task completion, and blockers in the root `progress.md` file.
15
22
 
16
- Each step has its own directory with specialized templates and examples to guide your work.
23
+ Each phase has associated Cursor Rules (`.cursor/rules/` and nested within `shape/*/.cursor/rules/`) that provide contextual guidance to the AI assistant.
17
24
 
18
25
  ---
19
26
 
20
- ## Directory Structure
27
+ ## Generated Project Structure
21
28
 
22
29
  ```
23
30
  [project_name]/
24
- ├── nova/
25
- ├── README.md
31
+ ├── .windsurfrules # Legacy support, points to modern rules
32
+ ├── .cursor/ # Cursor-specific configuration & rules
33
+ │ └── rules/
34
+ │ ├── nova-project.mdc # Core Nova workflow guidance (always active)
35
+ │ ├── shape-documentation.mdc # Rules for working in the shape/ directory
36
+ │ ├── code-development.mdc # Rules for working in the code/ directory
37
+ │ └── tasks.mdc # Rules for task creation & progress tracking
38
+ ├── progress.md # Overall project progress tracking
39
+ ├── shape/ # Product definition & planning documents
40
+ │ ├── README.md # This overview file
26
41
  │ ├── 1_big-picture/
27
- │ │ ├── README.md
42
+ │ │ ├── .cursor/rules/big-picture.mdc # Guidance for PRD & vision
28
43
  │ │ ├── prd_example.md
29
- │ │ ├── flowchart.md
44
+ │ │ └── flowchart_example.md
30
45
  │ ├── 2_user-stories/
31
- │ │ ├── README.md
46
+ │ │ ├── .cursor/rules/user-stories.mdc # Guidance for user stories
32
47
  │ │ └── example.md
33
48
  │ ├── 3_design-system/
34
- │ │ ├── README.md
35
- │ │ └── design_decisions.md
36
- │ ├── 4_prompts/
37
- │ │ ├── README.md
49
+ │ │ ├── .cursor/rules/design-system.mdc # Guidance for design system
38
50
  │ │ └── example.md
39
- ├── code/
51
+ │ └── 4_tasks/
52
+ │ └── 1_example.md # Template for feature task lists
53
+ └── code/ # Application source code
40
54
  ```
41
55
 
42
56
  ---
43
57
 
44
- ## Getting Started
58
+ ## Getting Started with AI Assistance
45
59
 
46
- 1. Start with the **1_big-picture** directory to define the project's foundation
47
- 2. Work through each numbered step in sequential order
48
- 3. Each directory contains:
49
- - **README.md**: Instructions and best practices for that step
50
- - **template.md**: A starting point for creating new documents
51
- - **example.md**: A reference showing how completed documents should look
52
-
53
- Follow the guidance in each README to create a comprehensive product development plan.
60
+ 1. **Familiarize the AI**: Ensure the AI assistant has read this `shape/README.md` and the main `.cursor/rules/nova-project.mdc` rule.
61
+ 2. **Follow the Phases**: Work through the `shape/` subdirectories sequentially.
62
+ 3. **Use Cursor Rules**: Cursor rules will automatically activate based on the directory you are working in, providing contextual guidance. Pay attention to these rules.
63
+ 4. **PRD First**: Start by fleshing out `shape/1_big-picture/prd_example.md`.
64
+ 5. **User Stories Next**: Define user stories in `shape/2_user-stories/example.md` based on the PRD.
65
+ 6. **Design System**: Document design decisions in `shape/3_design-system/example.md`.
66
+ 7. **Create Tasks**: For each feature, create a new task file in `shape/4_tasks/` (e.g., `shape/4_tasks/2_new_feature.md`) using `1_example.md` as a template. The AI can help generate these tasks based on the PRD and user stories, guided by `.cursor/rules/tasks.mdc`.
67
+ 8. **Implement Tasks**: Work through the sub-tasks in your feature task files. Update the checkboxes `[ ]` to `[x]` upon completion.
68
+ 9. **Track Files**: Update the "File Tracking" section in each task file as you create or modify files.
69
+ 10. **Update Progress**: Regularly update `progress.md` to reflect the status of tasks and features.
54
70
 
55
71
  ---
56
72
 
57
73
  ## Best Practices
58
74
 
59
- - **Start with Why**: Always begin by understanding the strategic purpose behind the project
60
- - **Focus on User Value**: Keep the user's needs at the center of all planning
61
- - **Be Specific**: Include enough detail for implementation but avoid over-specification
62
- - **Maintain Traceability**: Ensure each document references related documents from previous steps
63
- - **Collaborate Across Disciplines**: Involve all relevant team members in the appropriate steps
64
- - **Iterate and Refine**: The process is not strictly linear - revisit and update documents as you learn
75
+ - **Start with Why**: Always begin by understanding the strategic purpose behind the project from the PRD.
76
+ - **Focus on User Value**: Keep the user's needs (from user stories) at the center of all planning and implementation.
77
+ - **Task Granularity**: Break down features into small, manageable tasks.
78
+ - **Iterate and Refine**: The process is iterative. Revisit and update documents in `shape/` and `progress.md` as you learn and make changes during development.
65
79
 
66
80
  ---
67
81
 
68
- ## Additional Resources
69
-
70
- - **Nova Gem Documentation**: [Link to documentation]
71
- - **Product Planning Best Practices**: [Link to resources]
72
- - **AI Development Guidelines**: [Link to guidelines]
73
-
74
- For questions or suggestions to improve this process, please contact Ryan Francis (ryan@launchpadlab.com).
82
+ For questions or suggestions, please contact Ryan Francis (ryan@launchpadlab.com).
@@ -0,0 +1,75 @@
1
+ # Generate Rails Application
2
+
3
+ ## Task Overview
4
+ In the code/ directory generate a Rails 8 application with PostgreSQL, Tailwind CSS, Rspec, Flowbite, and Cypress to serve as the foundation for the project.
5
+
6
+ ## Prerequisites
7
+ - Review PRD and technical requirements in ../1_big-picture/
8
+ - Ensure development environment has Ruby, Rails 8, and PostgreSQL installed
9
+ - Review design system guidelines in ../3_design-system/
10
+
11
+ ## Tasks
12
+
13
+ - [ ] 1.0 Create Rails Application & Initialize Git
14
+ - [ ] 1.1 Generate Rails app: `rails _8.0.2_ new app_name --database=postgresql --css=tailwind`
15
+ - [ ] 1.2 Navigate to app directory: `cd app_name`
16
+ - [ ] 1.3 Initialize git repository: `git init`
17
+ - [ ] 1.4 Initial commit: `git add . && git commit -m "Initial commit: New Rails app"`
18
+ - [ ] 1.5 Install Tailwind: `bundle exec rails tailwindcss:install`
19
+ - [ ] 1.6 Setup database: `bundle exec rails db:create db:migrate`
20
+ - [ ] 1.7 Install RSpec: `bundle exec rails generate rspec:install`
21
+ - [ ] 1.8 Verify RSpec works: `bundle exec rspec`
22
+
23
+ - [ ] 2.0 Set up Core Gems
24
+ - [ ] 2.1 Add production gems to Gemfile (figaro, decanter)
25
+ - [ ] 2.2 Add testing gems to Gemfile (factory_bot_rails, faker, database_cleaner-active_record, shoulda-matchers, capybara, simplecov)
26
+ - [ ] 2.3 Add production gems (redis, sidekiq, sentry-ruby, sentry-rails, aws-sdk-s3)
27
+ - [ ] 2.4 Run bundle install: `bundle install`
28
+ - [ ] 2.5 Add platform compatibility: `bundle lock --add-platform x86_64-linux`
29
+
30
+ - [ ] 3.0 Set up Flowbite for UI Components
31
+ - [ ] 3.1 Add Flowbite to importmap: `config/importmap.rb`
32
+ - [ ] 3.2 Import Flowbite in application.js
33
+ - [ ] 3.3 Verify Flowbite loads correctly
34
+
35
+ - [ ] 4.0 Create Hello World Page
36
+ - [ ] 4.1 Generate controller: `rails generate controller Pages hello`
37
+ - [ ] 4.2 Create route for hello page
38
+ - [ ] 4.3 Style page with Tailwind CSS
39
+ - [ ] 4.4 Add Flowbite tooltip component to test integration
40
+ - [ ] 4.5 Verify page loads at `http://localhost:3000/hello`
41
+
42
+ - [ ] 5.0 Set up Cypress for E2E Testing
43
+ - [ ] 5.1 Install Cypress: `yarn add cypress start-server-and-test --dev`
44
+ - [ ] 5.2 Create simple E2E test for Hello World page
45
+ - [ ] 5.3 Add test scripts to package.json
46
+ - [ ] 5.4 Verify tests run: `yarn test:e2e:open`
47
+
48
+ - [ ] 6.0 Final Setup & Verification
49
+ - [ ] 6.1 Verify all tests pass (RSpec and Cypress)
50
+ - [ ] 6.2 Verify server starts cleanly: `bin/dev`
51
+ - [ ] 6.3 Create git commit for baseline setup
52
+
53
+ ## File Tracking
54
+
55
+ ### Files to Create
56
+ | File Path | Purpose | Task Ref | Status |
57
+ |-----------|---------|----------|--------|
58
+ | `Gemfile` | Ruby dependencies | 2.1-2.3 | ⏳ |
59
+ | `config/importmap.rb` | JavaScript imports | 3.1 | ⏳ |
60
+ | `app/javascript/application.js` | JS entry point | 3.2 | ⏳ |
61
+ | `app/controllers/pages_controller.rb` | Static pages controller | 4.1 | ⏳ |
62
+ | `app/views/pages/hello.html.erb` | Hello world view | 4.3 | ⏳ |
63
+ | `cypress/e2e/hello_world_spec.cy.js` | E2E test | 5.2 | ⏳ |
64
+ | `package.json` | Node.js scripts | 5.3 | ⏳ |
65
+
66
+ ### Files to Modify
67
+ | File Path | Changes | Task Ref | Status |
68
+ |-----------|---------|----------|--------|
69
+ | `config/routes.rb` | Add hello route | 4.2 | ⏳ |
70
+
71
+ ## Notes
72
+ - Follow Tailwind v4 documentation as many conventions have changed from v3
73
+ - Ensure PostgreSQL is running before database creation
74
+ - This sets up the foundation for all subsequent development tasks
75
+ - Refer to design system in ../3_design-system/ for styling consistency