Files
2025-11-29 18:49:14 +08:00

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}"