487 lines
10 KiB
Bash
Executable File
487 lines
10 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Design Brief Generator
|
|
# Interactive workflow for creating design project briefs
|
|
|
|
set -e
|
|
|
|
# Colors
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
CYAN='\033[0;36m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${BLUE}╔════════════════════════════════════════════════╗${NC}"
|
|
echo -e "${BLUE}║ Design Brief Generator ║${NC}"
|
|
echo -e "${BLUE}╚════════════════════════════════════════════════╝${NC}"
|
|
echo ""
|
|
|
|
# Function to prompt for input
|
|
prompt_input() {
|
|
local prompt="$1"
|
|
local var_name="$2"
|
|
local required="$3"
|
|
|
|
while true; do
|
|
echo -e "${YELLOW}${prompt}${NC}"
|
|
read -r input
|
|
|
|
if [ -n "$input" ]; then
|
|
eval "$var_name='$input'"
|
|
break
|
|
elif [ "$required" != "true" ]; then
|
|
eval "$var_name=''"
|
|
break
|
|
else
|
|
echo -e "${RED}This field is required. Please provide a value.${NC}"
|
|
fi
|
|
done
|
|
}
|
|
|
|
# Gather basic information
|
|
echo -e "${GREEN}Step 1: Project Basics${NC}"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
prompt_input "Project Name:" PROJECT_NAME true
|
|
prompt_input "One-line Description:" DESCRIPTION true
|
|
prompt_input "Output Filename (default: ${PROJECT_NAME// /_}_brief.md):" OUTPUT_FILE false
|
|
|
|
# Set default output file if not provided
|
|
if [ -z "$OUTPUT_FILE" ]; then
|
|
OUTPUT_FILE="${PROJECT_NAME// /_}_brief.md"
|
|
OUTPUT_FILE=$(echo "$OUTPUT_FILE" | tr '[:upper:]' '[:lower:]')
|
|
fi
|
|
|
|
echo ""
|
|
echo -e "${GREEN}Step 2: Project Context${NC}"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
prompt_input "What problem are you solving?" PROBLEM true
|
|
prompt_input "Who are the primary users?" PRIMARY_USERS true
|
|
prompt_input "What are the business goals?" BUSINESS_GOALS true
|
|
|
|
echo ""
|
|
echo -e "${GREEN}Step 3: Design Goals${NC}"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
prompt_input "Primary design goal:" DESIGN_GOAL true
|
|
prompt_input "How will you measure success?" SUCCESS_METRICS true
|
|
|
|
echo ""
|
|
echo -e "${GREEN}Step 4: Scope & Constraints${NC}"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
|
|
prompt_input "What's in scope (platforms, screens, features)?" IN_SCOPE true
|
|
prompt_input "What's explicitly out of scope?" OUT_OF_SCOPE false
|
|
prompt_input "Key constraints (timeline, tech, budget)?" CONSTRAINTS false
|
|
|
|
echo ""
|
|
echo -e "${GREEN}Step 5: Project Type${NC}"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|
|
echo "Select project type:"
|
|
echo " 1) New feature design"
|
|
echo " 2) Redesign"
|
|
echo " 3) Design system"
|
|
echo " 4) Brand/Visual design"
|
|
echo ""
|
|
|
|
while true; do
|
|
read -p "Enter choice (1-4): " project_type
|
|
case $project_type in
|
|
1) PROJECT_TYPE="New Feature Design"; break;;
|
|
2) PROJECT_TYPE="Redesign"; break;;
|
|
3) PROJECT_TYPE="Design System"; break;;
|
|
4) PROJECT_TYPE="Brand/Visual Design"; break;;
|
|
*) echo -e "${RED}Invalid choice. Please enter 1, 2, 3, or 4.${NC}";;
|
|
esac
|
|
done
|
|
|
|
# Generate brief
|
|
echo ""
|
|
echo -e "${BLUE}Generating design brief...${NC}"
|
|
echo ""
|
|
|
|
# Create brief from template
|
|
cat > "$OUTPUT_FILE" << EOF
|
|
# Design Brief: $PROJECT_NAME
|
|
|
|
**Project Type:** $PROJECT_TYPE
|
|
**Designer:** $(whoami)
|
|
**Date:** $(date +%Y-%m-%d)
|
|
**Last Updated:** $(date +%Y-%m-%d)
|
|
**Status:** Draft
|
|
|
|
---
|
|
|
|
## Executive Summary
|
|
|
|
$DESCRIPTION
|
|
|
|
This design brief outlines the approach for $PROJECT_NAME, addressing the need to $PROBLEM for $PRIMARY_USERS.
|
|
|
|
---
|
|
|
|
## Project Overview
|
|
|
|
### Background
|
|
|
|
$PROBLEM
|
|
|
|
### Business Objectives
|
|
|
|
$BUSINESS_GOALS
|
|
|
|
### Why Now?
|
|
|
|
[Add context about timing and strategic importance]
|
|
|
|
---
|
|
|
|
## Design Goals & Objectives
|
|
|
|
### Primary Goal
|
|
|
|
$DESIGN_GOAL
|
|
|
|
### Secondary Goals
|
|
|
|
- [Goal 2]
|
|
- [Goal 3]
|
|
|
|
### Success Criteria
|
|
|
|
$SUCCESS_METRICS
|
|
|
|
**Specific Metrics:**
|
|
- [Metric 1]: [Target]
|
|
- [Metric 2]: [Target]
|
|
- [Metric 3]: [Target]
|
|
|
|
---
|
|
|
|
## Target Users
|
|
|
|
### Primary User: $PRIMARY_USERS
|
|
|
|
**Demographics:**
|
|
- Age range: [Range]
|
|
- Role/Context: [Description]
|
|
- Tech proficiency: [Low/Medium/High]
|
|
|
|
**User Needs:**
|
|
- [Need 1]
|
|
- [Need 2]
|
|
- [Need 3]
|
|
|
|
**Pain Points:**
|
|
- [Current frustration 1]
|
|
- [Current frustration 2]
|
|
- [Current frustration 3]
|
|
|
|
**User Quote:**
|
|
_"[Include actual user feedback if available]"_
|
|
|
|
### Secondary Users
|
|
|
|
[Add if applicable]
|
|
|
|
---
|
|
|
|
## Design Principles
|
|
|
|
Core principles guiding this project:
|
|
|
|
1. **[Principle 1]** - [Description]
|
|
2. **[Principle 2]** - [Description]
|
|
3. **[Principle 3]** - [Description]
|
|
4. **[Principle 4]** - [Description]
|
|
|
|
---
|
|
|
|
## Scope
|
|
|
|
### In Scope
|
|
|
|
$IN_SCOPE
|
|
|
|
- [Additional scope item]
|
|
- [Additional scope item]
|
|
|
|
### Out of Scope
|
|
|
|
$OUT_OF_SCOPE
|
|
|
|
- [Additional exclusion]
|
|
- [Future consideration]
|
|
|
|
### Constraints
|
|
|
|
$CONSTRAINTS
|
|
|
|
**Technical Constraints:**
|
|
- [Technical limitation]
|
|
|
|
**Timeline Constraints:**
|
|
- [Deadline or milestone]
|
|
|
|
**Resource Constraints:**
|
|
- [Budget, team size, etc.]
|
|
|
|
---
|
|
|
|
## Key User Flows
|
|
|
|
### Flow 1: [Primary User Flow]
|
|
|
|
1. [Entry point]
|
|
2. [Step 1]
|
|
3. [Step 2]
|
|
4. [Decision point]
|
|
5. [Success state]
|
|
|
|
**Alternative Paths:**
|
|
- [Error state]
|
|
- [Alternative completion]
|
|
|
|
### Flow 2: [Secondary Flow]
|
|
|
|
[Define flow]
|
|
|
|
---
|
|
|
|
## Design Requirements
|
|
|
|
### Visual Design
|
|
|
|
- Style: [Minimalist/Bold/Playful/etc.]
|
|
- Mood: [Professional/Friendly/Energetic/etc.]
|
|
- Visual references: [Links to inspiration]
|
|
|
|
### Interaction Design
|
|
|
|
- Primary interaction patterns: [Tap/Swipe/Hover/etc.]
|
|
- Animations: [Yes/No, what kind]
|
|
- Feedback mechanisms: [How system responds]
|
|
|
|
### Accessibility
|
|
|
|
- **WCAG Level:** [A/AA/AAA]
|
|
- **Required:**
|
|
- [ ] Keyboard navigation
|
|
- [ ] Screen reader support
|
|
- [ ] Color contrast (4.5:1 minimum)
|
|
- [ ] Touch targets (44x44px)
|
|
- [ ] Focus indicators
|
|
- [ ] Alternative text for images
|
|
|
|
### Responsive Design
|
|
|
|
- **Platforms:** [Web/iOS/Android]
|
|
- **Breakpoints:**
|
|
- Mobile: 320px - 767px
|
|
- Tablet: 768px - 1023px
|
|
- Desktop: 1024px+
|
|
|
|
---
|
|
|
|
## Deliverables & Timeline
|
|
|
|
### Design Deliverables
|
|
|
|
**Research Phase:**
|
|
- [ ] Competitive analysis
|
|
- [ ] User research findings (if applicable)
|
|
- [ ] Current state analysis (if redesign)
|
|
|
|
**Design Phase:**
|
|
- [ ] User flows
|
|
- [ ] Wireframes (low-fi)
|
|
- [ ] High-fidelity mockups
|
|
- [ ] Interactive prototype
|
|
- [ ] Design specifications
|
|
- [ ] Component documentation
|
|
- [ ] Accessibility annotations
|
|
|
|
**Handoff Phase:**
|
|
- [ ] Developer handoff session
|
|
- [ ] Asset export
|
|
- [ ] Design QA checklist
|
|
|
|
### Timeline
|
|
|
|
| Phase | Duration | Deliverables | Due Date |
|
|
|-------|----------|-------------|----------|
|
|
| Discovery & Research | [X weeks] | Research, flows | [Date] |
|
|
| Wireframes | [X weeks] | Low-fi designs | [Date] |
|
|
| High-Fidelity | [X weeks] | Mockups, prototype | [Date] |
|
|
| Testing & Iteration | [X weeks] | Refined designs | [Date] |
|
|
| Handoff | [X weeks] | Specs, assets | [Date] |
|
|
|
|
**Key Milestones:**
|
|
- [Date]: Design review #1 (wireframes)
|
|
- [Date]: Design review #2 (high-fi)
|
|
- [Date]: Usability testing
|
|
- [Date]: Final design sign-off
|
|
- [Date]: Developer handoff
|
|
|
|
---
|
|
|
|
## Design Direction
|
|
|
|
### Visual References
|
|
|
|
**Inspiration:**
|
|
- [Link to mood board]
|
|
- [Link to similar products]
|
|
- [Link to design explorations]
|
|
|
|
**What We Like:**
|
|
- [Specific element from reference 1]
|
|
- [Specific element from reference 2]
|
|
|
|
**What to Avoid:**
|
|
- [Anti-pattern 1]
|
|
- [Anti-pattern 2]
|
|
|
|
---
|
|
|
|
## Technical Considerations
|
|
|
|
### Design System
|
|
|
|
- **Using existing:** [Yes/No, which system]
|
|
- **New components needed:** [List]
|
|
- **Design tokens:** [Colors, typography, spacing]
|
|
|
|
### Implementation Notes
|
|
|
|
- [Technical constraint to consider]
|
|
- [Platform-specific considerations]
|
|
- [Performance considerations]
|
|
|
|
---
|
|
|
|
## Success Metrics
|
|
|
|
### Usability Testing
|
|
|
|
**Pre-Launch:**
|
|
- [ ] Task success rate: 90%+
|
|
- [ ] Time on task: [Target time]
|
|
- [ ] SUS score: 75+
|
|
- [ ] Accessibility: Zero critical issues
|
|
|
|
**Test Scenarios:**
|
|
1. [Scenario 1]
|
|
2. [Scenario 2]
|
|
3. [Scenario 3]
|
|
|
|
### Post-Launch Metrics
|
|
|
|
**Within 30 days:**
|
|
- [Metric 1]: [Target]
|
|
- [Metric 2]: [Target]
|
|
- [Metric 3]: [Target]
|
|
|
|
**Within 90 days:**
|
|
- [Longer-term metric 1]
|
|
- [Longer-term metric 2]
|
|
|
|
---
|
|
|
|
## Stakeholders & Roles
|
|
|
|
| Role | Name | Responsibility | Status |
|
|
|------|------|---------------|--------|
|
|
| Designer | [Name] | Design execution | Active |
|
|
| Design Lead | [Name] | Design approval | Review |
|
|
| Product Manager | [Name] | Requirements, priorities | Review |
|
|
| Engineering Lead | [Name] | Feasibility, timeline | Review |
|
|
| User Researcher | [Name] | Research insights | Support |
|
|
|
|
**Sign-Off Required:**
|
|
- [ ] Design Lead
|
|
- [ ] Product Manager
|
|
- [ ] Engineering Lead
|
|
|
|
---
|
|
|
|
## Risks & Dependencies
|
|
|
|
### Risks
|
|
|
|
| Risk | Impact | Mitigation |
|
|
|------|--------|-----------|
|
|
| [Risk 1] | High/Med/Low | [How to address] |
|
|
| [Risk 2] | High/Med/Low | [How to address] |
|
|
|
|
### Dependencies
|
|
|
|
- [ ] [Dependency 1: e.g., API availability]
|
|
- [ ] [Dependency 2: e.g., Design system update]
|
|
- [ ] [Dependency 3]
|
|
|
|
---
|
|
|
|
## Open Questions
|
|
|
|
- [ ] [Question 1]
|
|
- [ ] [Question 2]
|
|
- [ ] [Question 3]
|
|
|
|
**Decisions Needed:**
|
|
- [ ] [Decision 1] - Owner: [Name], By: [Date]
|
|
- [ ] [Decision 2] - Owner: [Name], By: [Date]
|
|
|
|
---
|
|
|
|
## References
|
|
|
|
**Research:**
|
|
- [Link to user research]
|
|
- [Link to analytics data]
|
|
|
|
**Design:**
|
|
- [Link to Figma file]
|
|
- [Link to design system]
|
|
|
|
**Context:**
|
|
- [Link to PRD]
|
|
- [Link to technical spec]
|
|
|
|
---
|
|
|
|
## Appendix
|
|
|
|
### Change Log
|
|
|
|
| Date | Change | Author |
|
|
|------|--------|--------|
|
|
| $(date +%Y-%m-%d) | Initial draft | $(whoami) |
|
|
|
|
### Notes
|
|
|
|
[Additional context, decisions, or important information]
|
|
|
|
EOF
|
|
|
|
echo -e "${GREEN}✓ Design brief generated successfully!${NC}"
|
|
echo ""
|
|
echo -e "Output file: ${BLUE}$OUTPUT_FILE${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}Next steps:${NC}"
|
|
echo " 1. Review and fill in placeholder sections"
|
|
echo " 2. Add user flows and design requirements"
|
|
echo " 3. Attach visual references or mood boards"
|
|
echo " 4. Share with stakeholders for review"
|
|
echo " 5. Run validation: scripts/validate_brief.sh $OUTPUT_FILE"
|
|
echo ""
|
|
echo -e "${GREEN}✓ Done!${NC}"
|