nova-cli 0.1.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 +7 -0
- data/README.md +115 -0
- data/bin/nova +5 -0
- data/lib/nova/cli.rb +37 -0
- data/lib/nova/generator.rb +170 -0
- data/lib/nova/templates/big_picture_readme_template.md +29 -0
- data/lib/nova/templates/design_decisions_example.md +85 -0
- data/lib/nova/templates/design_system_readme_template.md +22 -0
- data/lib/nova/templates/flowchart_template.md +72 -0
- data/lib/nova/templates/prd_example_template.md +41 -0
- data/lib/nova/templates/prompts_example.md +134 -0
- data/lib/nova/templates/prompts_examples/01_generate_app.md +94 -0
- data/lib/nova/templates/prompts_examples/02_generate_styleguide.md +26 -0
- data/lib/nova/templates/prompts_examples/03_generate_static_pages.md +26 -0
- data/lib/nova/templates/prompts_examples/04_authentication_feature.md +41 -0
- data/lib/nova/templates/prompts_readme_template.md +27 -0
- data/lib/nova/templates/readme_template.md +74 -0
- data/lib/nova/templates/styleguide_index.html +385 -0
- data/lib/nova/templates/user_stories_readme_template.md +27 -0
- data/lib/nova/templates/user_story_example.md +83 -0
- data/lib/nova.rb +6 -0
- metadata +77 -0
@@ -0,0 +1,134 @@
|
|
1
|
+
# Project Implementation Tasks
|
2
|
+
|
3
|
+
A list of implementation tasks for the Customer Portal Application.
|
4
|
+
|
5
|
+
## 1. Rails Application Setup
|
6
|
+
Initialize a Rails 8 application with PostgreSQL, Tailwind CSS, Rspec, and Flowbite.
|
7
|
+
|
8
|
+
```
|
9
|
+
rails _8.0.2_ new app_name --database=postgresql --css=tailwind
|
10
|
+
cd app_name
|
11
|
+
bundle exec rails tailwindcss:install
|
12
|
+
bundle exec rails db:create db:migrate
|
13
|
+
bundle exec rails rspec:install
|
14
|
+
```
|
15
|
+
|
16
|
+
Create a Hello World page that is styled with Tailwind CSS and Flowbite (simple tooltip) so we can confirm both are working.
|
17
|
+
|
18
|
+
### Flowbite Setup
|
19
|
+
Importmap is the default way of handling JavaScript in Rails. In order to support turbo load from importmaps you have to pin the flowbite.turbo.js file from a CDN where the turbo:load event listeners are added instead of load.
|
20
|
+
|
21
|
+
Add the following line inside your importmap.rb file:
|
22
|
+
pin "flowbite", to: "https://cdn.jsdelivr.net/npm/flowbite@3.1.2/dist/flowbite.turbo.min.js"
|
23
|
+
Then you need to import flowbite inside your application.js file:
|
24
|
+
import 'flowbite';
|
25
|
+
This will enable the interactive elements like dropdowns, modals, and navbars work by hooking the event listeners and actions to the data attributes whenever a new page is loaded in your application.
|
26
|
+
|
27
|
+
### Gems
|
28
|
+
- Figaro for env variables
|
29
|
+
- Decanter for handling incoming params: https://github.com/LaunchPadLab/decanter
|
30
|
+
- Active Storage (for file attachments)
|
31
|
+
|
32
|
+
Testing:
|
33
|
+
- Factory Bot for testing
|
34
|
+
- Faker
|
35
|
+
- DatabaseCleaner
|
36
|
+
- Shoulda Matchers
|
37
|
+
- RSpec Rails
|
38
|
+
- Capybara
|
39
|
+
- SimpleCov
|
40
|
+
|
41
|
+
**Related Artifacts:**
|
42
|
+
- [PRD](../1_big-picture/prd.md)
|
43
|
+
|
44
|
+
## 2. Authentication System
|
45
|
+
Implement user registration, login functionality, password reset, and role-based permissions using Devise.
|
46
|
+
|
47
|
+
**Related Artifacts:**
|
48
|
+
- [Authentication Requirements](../1_big-picture/prd_example.md#authentication)
|
49
|
+
- [User Flow](../1_big-picture/flowchart.md#authentication-flow)
|
50
|
+
- [Login User Story](../2_user-stories/authentication.md#user-login)
|
51
|
+
- [Registration User Story](../2_user-stories/authentication.md#user-registration)
|
52
|
+
|
53
|
+
## 3. Core Database Structure
|
54
|
+
Design the database schema, create models with associations, set up validations, and implement seed data for development.
|
55
|
+
|
56
|
+
**Related Artifacts:**
|
57
|
+
- [Data Model Overview](../1_big-picture/prd_example.md#data-model)
|
58
|
+
- [Entity Relationship Diagram](../1_big-picture/flowchart.md#entity-relationships)
|
59
|
+
- [Data Requirements](../2_user-stories/data_requirements.md)
|
60
|
+
|
61
|
+
## 4. Dashboard Implementation
|
62
|
+
Create a responsive dashboard with quick stats widgets, activity feed, and notification system.
|
63
|
+
|
64
|
+
**Related Artifacts:**
|
65
|
+
- [Dashboard Requirements](../1_big-picture/prd_example.md#dashboard)
|
66
|
+
- [Dashboard User Story](../2_user-stories/dashboard.md)
|
67
|
+
|
68
|
+
## 5. Customer Management
|
69
|
+
Build CRUD operations for customer data with search, filtering, detailed views, and history tracking.
|
70
|
+
|
71
|
+
**Related Artifacts:**
|
72
|
+
- [Customer Management Requirements](../1_big-picture/prd_example.md#customer-management)
|
73
|
+
- [Customer User Stories](../2_user-stories/customers.md)
|
74
|
+
|
75
|
+
## 6. Document Management
|
76
|
+
Implement document upload, versioning, PDF generation for invoices, and document sharing capabilities.
|
77
|
+
|
78
|
+
**Related Artifacts:**
|
79
|
+
- [Document Management Requirements](../1_big-picture/prd_example.md#document-management)
|
80
|
+
- [Document Flow](../1_big-picture/flowchart.md#document-flow)
|
81
|
+
- [Document User Stories](../2_user-stories/documents.md)
|
82
|
+
|
83
|
+
## 7. Reporting System
|
84
|
+
Create report templates with data aggregation, visual charts, and export functionality.
|
85
|
+
|
86
|
+
**Related Artifacts:**
|
87
|
+
- [Reporting Requirements](../1_big-picture/prd_example.md#reporting)
|
88
|
+
- [Report User Stories](../2_user-stories/reports.md)
|
89
|
+
|
90
|
+
## 8. API Integration
|
91
|
+
Design API endpoints with authentication, third-party integrations, and webhook functionality.
|
92
|
+
|
93
|
+
**Related Artifacts:**
|
94
|
+
- [API Requirements](../1_big-picture/prd_example.md#api-integration)
|
95
|
+
- [Integration Flow](../1_big-picture/flowchart.md#integration-flow)
|
96
|
+
- [API User Stories](../2_user-stories/api.md)
|
97
|
+
|
98
|
+
## 9. Real-time Features
|
99
|
+
Implement WebSocket connections for real-time notifications, collaborative editing, and chat functionality.
|
100
|
+
|
101
|
+
**Related Artifacts:**
|
102
|
+
- [Real-time Requirements](../1_big-picture/prd_example.md#real-time-features)
|
103
|
+
- [Real-time Communication Flow](../1_big-picture/flowchart.md#real-time-flow)
|
104
|
+
- [Chat User Story](../2_user-stories/real_time.md#chat)
|
105
|
+
- [Notification User Story](../2_user-stories/real_time.md#notifications)
|
106
|
+
|
107
|
+
## 10. Performance Optimization
|
108
|
+
Implement caching, optimize database queries, set up background job processing, and conduct load testing.
|
109
|
+
|
110
|
+
**Related Artifacts:**
|
111
|
+
- [Performance Requirements](../1_big-picture/prd_example.md#performance)
|
112
|
+
- [System Load Estimates](../1_big-picture/prd_example.md#load-estimates)
|
113
|
+
|
114
|
+
## 11. Security Hardening
|
115
|
+
Perform security audit, implement security measures, set up monitoring and logging.
|
116
|
+
|
117
|
+
**Related Artifacts:**
|
118
|
+
- [Security Requirements](../1_big-picture/prd_example.md#security)
|
119
|
+
- [Privacy Requirements](../1_big-picture/prd_example.md#privacy)
|
120
|
+
- [Security User Stories](../2_user-stories/security.md)
|
121
|
+
|
122
|
+
## 12. Deployment & Launch
|
123
|
+
Finalize production environment, create deployment scripts, develop rollback procedures, and execute launch.
|
124
|
+
|
125
|
+
**Related Artifacts:**
|
126
|
+
- [Deployment Strategy](../1_big-picture/prd_example.md#deployment)
|
127
|
+
- [Launch Plan](../1_big-picture/prd_example.md#launch-plan)
|
128
|
+
- [Rollback Procedures](../1_big-picture/prd_example.md#rollback)
|
129
|
+
|
130
|
+
### Production Gems
|
131
|
+
- Redis (for caching)
|
132
|
+
- Sidekiq (for background jobs)
|
133
|
+
- Sentry (for error tracking)
|
134
|
+
- Aws S3 (for file storage)
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# Generate Application
|
2
|
+
|
3
|
+
This prompt is for the initial setup of the Rails application with the core dependencies required for the project.
|
4
|
+
|
5
|
+
## Task Description
|
6
|
+
|
7
|
+
Initialize a Rails 8 application with PostgreSQL, Tailwind CSS, Rspec, Flowbite, and Cypress.
|
8
|
+
|
9
|
+
### Steps
|
10
|
+
|
11
|
+
1. Create a new Rails application with the following command:
|
12
|
+
```
|
13
|
+
rails _8.0.2_ new app_name --database=postgresql --css=tailwind
|
14
|
+
cd app_name
|
15
|
+
bundle exec rails tailwindcss:install
|
16
|
+
bundle exec rails db:create db:migrate
|
17
|
+
bundle exec rails rspec:install
|
18
|
+
```
|
19
|
+
|
20
|
+
**Tailwind Note**: Please read the latest v4 docs here before trying to work with Tailwind as a lot has changed since v3 such as the ability to load colors in global.css instead of needing a tailwind config file: https://tailwindcss.com/blog/tailwindcss-v4
|
21
|
+
|
22
|
+
Make sure rspec works: `bundle exec rspec`
|
23
|
+
|
24
|
+
2. Set up the following gems in the Gemfile:
|
25
|
+
|
26
|
+
#### Core Gems
|
27
|
+
- Figaro (for environment variables)
|
28
|
+
- Decanter (for handling incoming params): https://github.com/LaunchPadLab/decanter
|
29
|
+
- Active Storage (for file attachments)
|
30
|
+
|
31
|
+
#### Testing Gems
|
32
|
+
- Factory Bot Rails
|
33
|
+
- Faker
|
34
|
+
- DatabaseCleaner
|
35
|
+
- Shoulda Matchers
|
36
|
+
- RSpec Rails
|
37
|
+
- Capybara
|
38
|
+
- SimpleCov
|
39
|
+
|
40
|
+
#### Production Gems
|
41
|
+
- Redis (for caching)
|
42
|
+
- Sidekiq (for background jobs)
|
43
|
+
- Sentry (for error tracking)
|
44
|
+
- AWS S3 SDK (for file storage)
|
45
|
+
|
46
|
+
3. Set up Flowbite for interactive components:
|
47
|
+
|
48
|
+
Importmap is the default way of handling JavaScript in Rails. To support turbo load:
|
49
|
+
|
50
|
+
Add the following line inside your importmap.rb file:
|
51
|
+
```ruby
|
52
|
+
pin "flowbite", to: "https://cdn.jsdelivr.net/npm/flowbite@3.1.2/dist/flowbite.turbo.min.js"
|
53
|
+
```
|
54
|
+
|
55
|
+
Then import flowbite inside your application.js file:
|
56
|
+
```javascript
|
57
|
+
import 'flowbite';
|
58
|
+
```
|
59
|
+
|
60
|
+
4. Create a Hello World page with Tailwind CSS and Flowbite to confirm both are working properly:
|
61
|
+
- Include a simple styled page
|
62
|
+
- Add a simple Flowbite component (tooltip) for testing
|
63
|
+
|
64
|
+
5. Set up Cypress for headless E2E testing:
|
65
|
+
```bash
|
66
|
+
yarn add cypress --dev
|
67
|
+
```
|
68
|
+
|
69
|
+
Create a simple E2E test for the Hello World page:
|
70
|
+
```javascript
|
71
|
+
// cypress/e2e/hello_world_spec.cy.js
|
72
|
+
describe('Hello World Page', () => {
|
73
|
+
it('successfully loads', () => {
|
74
|
+
cy.visit('http://localhost:3000')
|
75
|
+
cy.contains('Hello World')
|
76
|
+
cy.get('[data-tooltip-target]').should('exist')
|
77
|
+
})
|
78
|
+
})
|
79
|
+
```
|
80
|
+
|
81
|
+
Add script to package.json for headless testing:
|
82
|
+
```json
|
83
|
+
"scripts": {
|
84
|
+
"test:e2e": "cypress run"
|
85
|
+
}
|
86
|
+
```
|
87
|
+
|
88
|
+
Run the test headlessly:
|
89
|
+
```bash
|
90
|
+
yarn test:e2e
|
91
|
+
```
|
92
|
+
|
93
|
+
## Related Artifacts
|
94
|
+
- [PRD](../1_big-picture/prd.md)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Generate Static Styleguide
|
2
|
+
|
3
|
+
This prompt is for creating a static styleguide application based on the design system decisions, user stories, PRD, and flowchart.
|
4
|
+
|
5
|
+
## Task Description
|
6
|
+
|
7
|
+
Using the design decisions from `../3_design-system/design_decisions.md`, create a styleguide within the application (in the code/ directory) that showcase the colors, typography, componentry, and example forms. Please nest all pages within this under /styleguide route as follows:
|
8
|
+
- Styleguide Home: /styleguide
|
9
|
+
- Colors: /styleguide/colors
|
10
|
+
- Typography: /styleguide/typography
|
11
|
+
- Componentry: /styleguide/componentry
|
12
|
+
- Forms: /styleguide/forms
|
13
|
+
- Authenticated Layout: /styleguide/authenticated
|
14
|
+
- Unauthenticated Layout: /styleguide/unauthenticated
|
15
|
+
|
16
|
+
Create the static styleguide with:
|
17
|
+
- Tailwind CSS for utility-based styling
|
18
|
+
- Flowbite for interactive components (modals, tooltips, etc.)
|
19
|
+
- HTML structure that follows the design system
|
20
|
+
|
21
|
+
**Tailwind Note**: Please read the latest v4 docs here before trying to work with Tailwind as a lot has changed since v3 such as the ability to load colors in global.css instead of needing a tailwind config file: https://tailwindcss.com/blog/tailwindcss-v4
|
22
|
+
|
23
|
+
## Related Artifacts
|
24
|
+
- [PRD](../1_big-picture/prd.md)
|
25
|
+
- [Flowchart](../1_big-picture/flowchart.md)
|
26
|
+
- [Design Decisions](../3_design-system/design_decisions.md)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Generate Static Front-end Pages
|
2
|
+
|
3
|
+
This prompt is for creating the static front-end pages based on the design system, user stories, PRD, and flowchart.
|
4
|
+
|
5
|
+
## Task Description
|
6
|
+
|
7
|
+
Implement the core static front-end pages for the application using the design system styleguide as a reference.
|
8
|
+
|
9
|
+
Using the design system styleguide and flowchart from the big picture directory, implement the following pages:
|
10
|
+
- Create the main pages defined in the flowchart
|
11
|
+
- Implement layouts using Tailwind CSS classes consistent with the styleguide
|
12
|
+
- Add Flowbite components for interactive elements
|
13
|
+
- Ensure all pages are responsive and follow the design patterns
|
14
|
+
|
15
|
+
For each page:
|
16
|
+
- Include proper routing
|
17
|
+
- Set up navigation between pages
|
18
|
+
- Create placeholder content where dynamic data will eventually be used
|
19
|
+
- Implement form structures (without actual functionality yet)
|
20
|
+
- Connect the pages with a consistent navigation structure as defined in the flowchart
|
21
|
+
|
22
|
+
## Related Artifacts
|
23
|
+
- [PRD](../1_big-picture/prd.md)
|
24
|
+
- [Design System](../3_design-system/design_decisions.md)
|
25
|
+
- [Flowchart](../1_big-picture/flowchart.md)
|
26
|
+
- [User Stories](../2_user-stories/)
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Authentication Feature Implementation
|
2
|
+
|
3
|
+
This prompt is for implementing the authentication system for the application.
|
4
|
+
|
5
|
+
## Task Description
|
6
|
+
|
7
|
+
Implement a complete user authentication system with registration, login, password reset, and role-based permissions using Devise.
|
8
|
+
|
9
|
+
### Steps
|
10
|
+
|
11
|
+
1. Add and configure Devise gem for Rails authentication:
|
12
|
+
- Install Devise
|
13
|
+
- Generate User model with appropriate attributes
|
14
|
+
- Configure Devise modules (registerable, recoverable, rememberable, validatable)
|
15
|
+
- Set up role-based authorization
|
16
|
+
|
17
|
+
2. Customize authentication views to match the application design:
|
18
|
+
- Override Devise default views
|
19
|
+
- Apply the design system styles from the styleguide
|
20
|
+
- Implement form validations with appropriate error messages
|
21
|
+
|
22
|
+
3. Implement additional authentication features:
|
23
|
+
- Email verification
|
24
|
+
- Password reset flow
|
25
|
+
- Remember me functionality
|
26
|
+
- Session management
|
27
|
+
|
28
|
+
4. Add role-based access controls:
|
29
|
+
- Create role-based permissions system
|
30
|
+
- Implement policies for different user types
|
31
|
+
- Add authorization checks to controllers and views
|
32
|
+
|
33
|
+
5. Create user profile management:
|
34
|
+
- Profile editing functionality
|
35
|
+
- Account settings
|
36
|
+
- Password change forms
|
37
|
+
|
38
|
+
## Related Artifacts
|
39
|
+
- [Authentication Requirements](../1_big-picture/prd.md#authentication)
|
40
|
+
- [User Flow](../1_big-picture/flowchart.md#authentication-flow)
|
41
|
+
- [Design System](../3_design-system/design_decisions.md)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Development Prompts
|
2
|
+
|
3
|
+
This directory contains a list of development prompts for implementing your application based on the planning documents.
|
4
|
+
|
5
|
+
## Purpose
|
6
|
+
|
7
|
+
Development prompts help create a logical sequence for building your application, making it easier to communicate implementation needs to developers or AI assistants.
|
8
|
+
|
9
|
+
## How to Use
|
10
|
+
|
11
|
+
1. Create separate prompt files for each major development phase:
|
12
|
+
- `01_generate_app.md` - Initial application setup with core dependencies
|
13
|
+
- `02_generate_styleguide.md` - Design system implementation
|
14
|
+
- `03_generate_static_pages.md` - Core pages based on the flowchart in the big picture directory
|
15
|
+
- Feature-specific prompts (e.g., `04_authentication.md`, `05_dashboard.md`, etc.)
|
16
|
+
2. For each prompt file:
|
17
|
+
- Follow the structure in the examples directory
|
18
|
+
- Reference the PRD for technology stack guidance and requirements
|
19
|
+
- Link relevant artifacts within each prompt so that the AI Agent can understand the context and dependencies
|
20
|
+
3. When ready to implement, use each prompt file individually with the AI Agent
|
21
|
+
4. If an issue occurs during the implementation, work with the AI Agent to correct the documentation and prompt, then re-prompt the AI Agent
|
22
|
+
|
23
|
+
Note: for 01_generate_app, 02_generate_styleguide, and 03_generate_static_pages prompts, follow the examples provided exactly unless the user explicitly tells you otherwise.
|
24
|
+
|
25
|
+
## Example
|
26
|
+
|
27
|
+
See `prompts_example.md` in this directory for an example of how to structure your development task list.
|
@@ -0,0 +1,74 @@
|
|
1
|
+
# Product Development Workflow
|
2
|
+
|
3
|
+
Welcome to the Product Documentation for [project name]! This repository contains a structured workflow for planning, designing, and implementing product features.
|
4
|
+
|
5
|
+
---
|
6
|
+
|
7
|
+
## The Nova Process
|
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:
|
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
|
15
|
+
|
16
|
+
Each step has its own directory with specialized templates and examples to guide your work.
|
17
|
+
|
18
|
+
---
|
19
|
+
|
20
|
+
## Directory Structure
|
21
|
+
|
22
|
+
```
|
23
|
+
[project_name]/
|
24
|
+
├── nova/
|
25
|
+
│ ├── README.md
|
26
|
+
│ ├── 1_big-picture/
|
27
|
+
│ │ ├── README.md
|
28
|
+
│ │ ├── prd_example.md
|
29
|
+
│ │ ├── flowchart.md
|
30
|
+
│ ├── 2_user-stories/
|
31
|
+
│ │ ├── README.md
|
32
|
+
│ │ └── example.md
|
33
|
+
│ ├── 3_design-system/
|
34
|
+
│ │ ├── README.md
|
35
|
+
│ │ └── design_decisions.md
|
36
|
+
│ ├── 4_prompts/
|
37
|
+
│ │ ├── README.md
|
38
|
+
│ │ └── example.md
|
39
|
+
├── code/
|
40
|
+
```
|
41
|
+
|
42
|
+
---
|
43
|
+
|
44
|
+
## Getting Started
|
45
|
+
|
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.
|
54
|
+
|
55
|
+
---
|
56
|
+
|
57
|
+
## Best Practices
|
58
|
+
|
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
|
65
|
+
|
66
|
+
---
|
67
|
+
|
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).
|