Quick Start Guide
This guide will help you get started with Spec-Driven Development using Our Personas.
NEW: All automation scripts now provide both Bash (
.sh) and PowerShell (.ps1) variants. ThepersonasCLI auto-selects based on OS unless you pass--script sh|ps.
Recommended Workflow
For New Projects (Greenfield)
- Install Personas - Bootstrap your project structure
- Establish Principles - Define project values with
/personas.regulate - Specify Features - Create detailed specifications with
/personas.specify - Clarify Requirements - Resolve ambiguities with
/personas.clarify(optional) - Define Architecture - Design system architecture with
/personas.architect - Set Standards - Establish coding and testing practices with
/personas.standardize - Design & Implement - Create plans and build features iteratively
For Existing Projects (Adding Features)
- Install Personas - Bootstrap your project structure
- Establish Principles - Define project values with
/personas.regulate(if not done) - Specify Features - Create feature specifications with
/personas.specify - Clarify Requirements - Resolve ambiguities with
/personas.clarify(optional) - Update Architecture - Update architecture if needed with
/personas.architect - Update Standards - Update standards if needed with
/personas.standardize - Design & Implement - Create plans and build features
The Complete Process
1. Install Personas
Initialize your project depending on the coding agent you're using:
uvx --from git+https://github.com/dauquangthanh/our-personas.git personas init <PROJECT_NAME>
Pick script type explicitly (optional):
uvx --from git+https://github.com/dauquangthanh/our-personas.git personas init <PROJECT_NAME> --script ps # Force PowerShell
uvx --from git+https://github.com/dauquangthanh/our-personas.git personas init <PROJECT_NAME> --script sh # Force POSIX shell
2. Establish Project Principles
Use /personas.regulate to define your project's governing principles:
/personas.regulate Create principles focused on code quality, testing standards, user experience consistency, and performance requirements
3. Create Feature Specifications
Use /personas.specify to create detailed feature specifications:
/personas.specify Build an application that can help me organize my photos in separate photo albums. Albums are grouped by date and can be re-organized by dragging and dropping on the main page.
4. Clarify Requirements (Optional)
Use /personas.clarify to resolve ambiguities:
/personas.clarify
5. Define System Architecture
Use /personas.architect to establish your system's architecture:
/personas.architect Design a system architecture using:
- [List appropriate architectural patterns and components]
- [Database and storage choices]
- [Communication patterns]
- [Deployment and scaling strategy]
Include component interactions, data flows, and scalability considerations.
For simpler applications:
/personas.architect Design a single-page application with local storage, using a modular component architecture
6. Establish Coding Standards
Use /personas.standardize to define coding practices and quality standards:
/personas.standardize Configure standards for [tech stack], [test framework], [coverage target]%, [linters/formatters], and [CI/CD approach]
7. Create a Technical Implementation Plan
Use the /personas.design command to provide your tech stack and architecture choices.
/personas.design The application uses Vite with minimal number of libraries. Use vanilla HTML, CSS, and JavaScript as much as possible. Images are not uploaded anywhere and metadata is stored in a local SQLite database.
8. Generate E2E Test Plan
Use /personas.design-test to create comprehensive E2E test scenarios:
/personas.design-test
9. Break Down and Implement
Use /personas.taskify to create an actionable task list, then use /personas.implement to build the feature:
/personas.taskify
/personas.implement
10. Execute E2E Tests
Use /personas.test to run E2E tests and generate a test report:
/personas.test
Detailed Example: Building Taskify
Here's a complete example of building a team productivity platform from scratch.
Phase 1: System-Level Planning
Step 1: Establish Principles
/personas.regulate Create principles focused on:
- Code quality: Clean architecture, SOLID principles
- Testing: 80% coverage, TDD approach, E2E for critical paths
- User experience: Responsive design, <200ms interactions, accessibility
- Performance: <100ms real-time updates, efficient database queries
- Security: RBAC, input validation, audit logging
Step 2: Specify First Feature
/personas.specify Feature 001: Basic user authentication and project creation.
This is a simplified first feature focusing on:
- User login (5 predefined users: 1 PM, 4 engineers)
- No password required (user selection only)
- Create and list projects
- Basic project permissions
Step 3: Clarify and Refine
/personas.clarify
After clarification, add any refinements:
Each project should have 3 sample projects created with basic metadata.
Step 4: Define Architecture
/personas.architect Design a system architecture for "Taskify" based on Feature 001 requirements:
ARCHITECTURE:
- Microservices: Auth Service, Project Service, Task Service, Notification Service, Analytics Service
- API Gateway with rate limiting and authentication
- PostgreSQL for transactional data (projects, tasks, users)
- Redis for caching and real-time presence
- RabbitMQ for asynchronous task processing (notifications, analytics)
- SignalR/WebSockets for real-time updates
- Azure Blob Storage for file attachments
- Elasticsearch for advanced search
DEPLOYMENT:
- Kubernetes on Azure AKS
- Initial: Vertical scaling
- Future: Horizontal scaling with service replication
- CI/CD: GitHub Actions with automated testing
SECURITY:
- OAuth2/OpenID Connect for SSO
- JWT tokens for API authentication
- Row-level security in PostgreSQL
- HTTPS everywhere with TLS 1.3
DATA FLOWS:
- Task updates: Client → API Gateway → Task Service → PostgreSQL + Redis + SignalR
- Notifications: Task Service → RabbitMQ → Notification Service → Email/Push providers
- Search: Task Service → Elasticsearch sync → Search Service
Step 4: Establish Coding Standards
/personas.standardize Configure standards for:
TECHNOLOGY STACK:
- Backend: .NET 8 with ASP.NET Core
- Frontend: React 18 with TypeScript
- Database: PostgreSQL 15
- Testing: xUnit (backend), Vitest + React Testing Library (frontend), Playwright (E2E)
QUALITY STANDARDS:
- Code coverage: 80% minimum
- Complexity: Max cyclomatic complexity of 10
- Linting: ESLint (frontend), StyleCop (backend)
- Formatting: Prettier (frontend), EditorConfig (backend)
TESTING APPROACH:
- Unit tests for business logic
- Integration tests for API endpoints
- E2E tests for critical user workflows
- Performance tests for real-time updates
CI/CD:
- GitHub Actions for build, test, deploy
- Automated security scanning (OWASP Dependency Check)
- Automated accessibility testing (axe-core)
- Blue-green deployment strategy
Phase 2: Implement First Feature
Note: After establishing ground rules, architecture, and standards, you can now implement features using the full workflow.
Step 1: Design Feature Plan
/personas.design Use Blazor Server for UI, SignalR for real-time, REST API for CRUD operations, EF Core for data access
This is a simplified first feature focusing on:
- User login (5 predefined users: 1 PM, 4 engineers)
- No password required (user selection only)
- Create and list projects
- Basic project permissions
Step 2: Clarify and Refine
/personas.clarify
After clarification, add any refinements:
Each project should have 3 sample projects created with basic metadata.
Validate the specification checklist:
Read the review and acceptance checklist, and check off each item in the checklist if the feature spec meets the criteria. Leave it empty if it does not.
Step 3: Create Implementation Plan
Be specific about implementation details for this feature:
/personas.design For Feature 002, implement:
- .NET 8 Auth Service with in-memory user store (5 predefined users)
- React frontend with user selection screen
- PostgreSQL database for projects
- REST API for project CRUD operations
- Basic project listing UI
Follow the architecture defined in memory/architecture.md and standards in memory/standards.md.
Step 4: Generate Test Plan
/personas.design-test
Step 5: Break Down Into Tasks
/personas.taskify
Step 6: Validate and Implement
Have your AI agent audit the implementation plan:
Audit the implementation plan and tasks to ensure all steps are clear and properly sequenced.
Implement the feature:
/personas.implement
Step 7: Run E2E Tests
/personas.test
Phase 3: Iterate With More Features
Repeat Phase 2 for each additional feature (003, 004, etc.):
- Feature 003: Kanban boards with drag-and-drop
- Feature 004: Task comments and assignments
- Feature 005: Real-time collaboration
- Feature 006: File attachments
- And so on...
Each feature builds on the established architecture and standards from Phase 1.
Key Principles
- System overview first for new projects - understand the full scope before architecting
- Architecture before features - design the system based on all planned features
- Be explicit about what you're building and why
- Don't focus on tech stack during specification phase (except in system overview)
- Iterate and refine your specifications before implementation
- Validate the plan before coding begins
- Let the AI agent handle the implementation details
Next Steps
- Read the complete methodology for in-depth guidance
- Check out more examples in the repository
- Explore the source code on GitHub