Add parallel Codex + Gemini review framework
- Both reviewers work simultaneously (5-10 min total) - Codex: Security + architecture deep dive - Gemini: Performance + UX + accessibility analysis - Services running: Backend (8001) + Frontend (3200) - Output: 2 comprehensive reports with fixes + estimates
This commit is contained in:
parent
a6aa92828a
commit
b8ff4e91c3
3 changed files with 583 additions and 0 deletions
299
GEMINI_REVIEW_PROMPT.txt
Normal file
299
GEMINI_REVIEW_PROMPT.txt
Normal file
|
|
@ -0,0 +1,299 @@
|
|||
Analyze the NaviDocs boat management platform for performance optimization and user experience quality.
|
||||
|
||||
**Context:**
|
||||
- Codebase: /home/setup/navidocs
|
||||
- Stack: Vue 3 + Vite, Express.js, SQLite
|
||||
- Target: €800K-€1.5M yacht market (premium UX expectations)
|
||||
- Users: Boat owners, captains, crew, management companies
|
||||
- Environment: Marine (bright sunlight, gloves, wet hands, boat vibrations)
|
||||
|
||||
**Your Focus Areas:**
|
||||
|
||||
## 1. Performance Analysis
|
||||
|
||||
**Frontend Performance:**
|
||||
- Bundle size analysis (target: <500KB gzipped)
|
||||
- Code splitting effectiveness (lazy-loaded routes?)
|
||||
- Image optimization (WebP, responsive images, lazy loading)
|
||||
- JavaScript execution time (large components causing jank?)
|
||||
- Memory leaks (event listeners cleaned up on unmount?)
|
||||
- Vite build config optimization
|
||||
|
||||
**Commands to run:**
|
||||
```bash
|
||||
cd /home/setup/navidocs
|
||||
|
||||
# Build and analyze
|
||||
npm run build
|
||||
du -sh dist/
|
||||
find dist/assets -name "*.js" -exec du -h {} \; | sort -h
|
||||
|
||||
# Check for lazy loading
|
||||
grep -r "import.*from.*views" client/src/router/
|
||||
|
||||
# Find large components (>500 lines = performance risk)
|
||||
find client/src -name "*.vue" -exec wc -l {} \; | awk '$1 > 500 {print}'
|
||||
```
|
||||
|
||||
**Backend Performance:**
|
||||
- Database query efficiency (N+1 queries, missing indexes)
|
||||
- API response times (should be <200ms p95)
|
||||
- Pagination implementation (avoid loading 1000+ rows)
|
||||
- Response compression (gzip enabled?)
|
||||
- Caching strategy (Redis used? HTTP cache headers?)
|
||||
|
||||
**Commands to run:**
|
||||
```bash
|
||||
# Check for N+1 queries (loop + db query = bad)
|
||||
grep -r "for.*of\|forEach" server/routes/ -A 5 | grep "db.prepare"
|
||||
|
||||
# Find missing indexes
|
||||
sqlite3 server/navidocs.db "SELECT name FROM sqlite_master WHERE type='index';"
|
||||
|
||||
# Check pagination (should use LIMIT/OFFSET)
|
||||
grep -r "\.all(" server/routes/ | wc -l # High count = potential issue
|
||||
```
|
||||
|
||||
**Deliverable:**
|
||||
- Lighthouse Performance score estimate (based on code analysis)
|
||||
- Specific bottlenecks with file:line references
|
||||
- Quick wins (easy optimizations with high impact)
|
||||
- Bundle size breakdown (which chunks are largest?)
|
||||
|
||||
---
|
||||
|
||||
## 2. User Experience (UX) Analysis
|
||||
|
||||
**Marine Environment Considerations:**
|
||||
- Touch targets: Are all buttons ≥60×60px? (glove-friendly)
|
||||
- Contrast ratio: Is text readable in direct sunlight? (WCAG AAA = 7:1)
|
||||
- Font sizes: Are key metrics ≥32px? (Garmin-style glanceability)
|
||||
- Glass morphism performance: Is backdrop-filter causing lag?
|
||||
|
||||
**Commands to run:**
|
||||
```bash
|
||||
# Find small touch targets
|
||||
grep -r "width.*px\|height.*px" client/src/components/ | grep -E "width: [1-4][0-9]px|height: [1-4][0-9]px"
|
||||
|
||||
# Check for low contrast (search for light colors on light backgrounds)
|
||||
grep -r "color.*#[A-F0-9]\{6\}" client/src --include="*.vue" | grep -E "fff|eee|ddd"
|
||||
|
||||
# Find small fonts (<16px = hard to read)
|
||||
grep -r "font-size.*px" client/src | grep -E "[0-9]{1}px|1[0-5]px"
|
||||
```
|
||||
|
||||
**Interaction Design:**
|
||||
- Loading states: Does every async action show feedback?
|
||||
- Error handling: Are errors user-friendly? (not technical jargon)
|
||||
- Empty states: Are "no data" screens helpful? (actionable CTAs)
|
||||
- Navigation clarity: Can users find features intuitively?
|
||||
|
||||
**Accessibility (a11y):**
|
||||
- Keyboard navigation: Can you tab through all controls?
|
||||
- ARIA labels: Do icons have screen-reader text?
|
||||
- Color blindness: Is information conveyed beyond color?
|
||||
- Focus indicators: Are they visible and clear?
|
||||
|
||||
**Commands to run:**
|
||||
```bash
|
||||
# Find missing ARIA labels
|
||||
grep -r "<button\|<div.*@click" client/src/components/ | grep -v "aria-label" | wc -l
|
||||
|
||||
# Find images without alt text
|
||||
grep -r "<img" client/src | grep -v "alt=" | wc -l
|
||||
|
||||
# Check for keyboard traps (modals must be escapable)
|
||||
grep -r "v-if.*showModal\|v-show.*modal" client/src | grep -v "@keyup.escape"
|
||||
```
|
||||
|
||||
**Mobile Responsiveness:**
|
||||
- Does UI adapt to tablet (1024×768)?
|
||||
- Are there responsive breakpoints?
|
||||
- Is there horizontal scrolling on small screens?
|
||||
- Touch gestures implemented (swipe, pinch zoom)?
|
||||
|
||||
---
|
||||
|
||||
## 3. Code Quality (UX-Impacting)
|
||||
|
||||
**Component Complexity:**
|
||||
- Are components too large? (>300 lines = hard to maintain, bugs likely)
|
||||
- Is there duplicated code? (inconsistent UX across modules)
|
||||
- Are error boundaries implemented? (crashes break UX)
|
||||
|
||||
**State Management:**
|
||||
- Is global state properly managed? (Pinia store used?)
|
||||
- Are loading/error states handled consistently?
|
||||
- Do forms validate properly? (prevent user frustration)
|
||||
|
||||
**Visual Consistency:**
|
||||
- Is there a design system? (consistent spacing, colors, typography)
|
||||
- Are magic numbers avoided? (CSS values in variables)
|
||||
- Do all modules look coherent? (or patchwork of different styles)
|
||||
|
||||
**Commands to run:**
|
||||
```bash
|
||||
# Find inconsistent spacing (magic numbers in CSS)
|
||||
grep -r "margin:.*px\|padding:.*px" client/src | grep -v "var(--" | wc -l
|
||||
|
||||
# Find duplicate code
|
||||
npx jscpd client/src --min-lines 10 --min-tokens 50
|
||||
|
||||
# Find global state scattered in components (antipattern)
|
||||
grep -r "ref(\|reactive(" client/src/views/ | wc -l # High count = state not centralized
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Specific NaviDocs Features to Test
|
||||
|
||||
**Test these user flows (if services running):**
|
||||
|
||||
1. **Camera Module** (http://localhost:3200/cameras)
|
||||
- Do thumbnails load quickly?
|
||||
- Is there a loading skeleton?
|
||||
- What happens when camera offline? (error state clear?)
|
||||
|
||||
2. **Inventory Module** (http://localhost:3200/inventory)
|
||||
- Photo upload: Is there drag-drop? Progress bar?
|
||||
- Large lists: Is there virtualization? Infinite scroll?
|
||||
- Search: Debounced? Shows "no results" clearly?
|
||||
|
||||
3. **Maintenance Timeline** (http://localhost:3200/timeline)
|
||||
- Does it load quickly with 1000+ events?
|
||||
- Is future/past navigation clear?
|
||||
- Mobile: Can you swipe between dates?
|
||||
|
||||
4. **Dashboard** (http://localhost:3200/)
|
||||
- Glanceable metrics: Large fonts? Color-coded?
|
||||
- Weather widget: Loads fast? Cached?
|
||||
- Quick actions: Thumb-reachable on mobile?
|
||||
|
||||
---
|
||||
|
||||
## Output Format
|
||||
|
||||
Generate: `/home/setup/navidocs/reviews/GEMINI_PERFORMANCE_UX_REPORT.md`
|
||||
|
||||
**Structure:**
|
||||
|
||||
```markdown
|
||||
# Gemini Performance & UX Review - NaviDocs
|
||||
|
||||
**Reviewed:** 2025-11-14
|
||||
**Model:** Gemini 2.0 Flash Thinking
|
||||
**Focus:** Performance optimization + User experience quality
|
||||
|
||||
---
|
||||
|
||||
## Executive Summary
|
||||
|
||||
**Performance Score:** 7.2/10 (Good, needs optimization)
|
||||
**UX Score:** 8.1/10 (Strong, minor accessibility gaps)
|
||||
|
||||
[2-3 paragraph summary of findings]
|
||||
|
||||
---
|
||||
|
||||
## Performance Issues
|
||||
|
||||
### 🔴 Critical (Blocks User Action)
|
||||
1. **Large Bundle Size (789 KB gzipped)**
|
||||
- **Impact:** 5-8 second load on 3G connection
|
||||
- **Root Cause:** All routes loaded upfront, no code splitting
|
||||
- **Fix:**
|
||||
```javascript
|
||||
// client/src/router/index.js
|
||||
// BEFORE
|
||||
import DocumentView from './views/DocumentView.vue'
|
||||
|
||||
// AFTER
|
||||
component: () => import('./views/DocumentView.vue')
|
||||
```
|
||||
- **Effort:** 30 minutes (convert 9 routes)
|
||||
|
||||
### 🟡 High Priority (Degrades Experience)
|
||||
2. **N+1 Query in Inventory Endpoint**
|
||||
- **File:** `server/routes/inventory.js:78`
|
||||
- **Impact:** 200ms → 2000ms with 100 items
|
||||
- **Fix:** Use JOIN instead of loop
|
||||
- **Effort:** 1 hour
|
||||
|
||||
[Continue...]
|
||||
|
||||
---
|
||||
|
||||
## UX Issues
|
||||
|
||||
### 🔴 Critical (Unusable in Marine Environment)
|
||||
1. **Touch Targets Too Small (32×32px)**
|
||||
- **Files:**
|
||||
- `client/src/components/ContactsModule.vue:45` (delete icon)
|
||||
- `client/src/components/InventoryModule.vue:89` (edit button)
|
||||
- **Impact:** Impossible to tap with gloves
|
||||
- **Fix:** Increase to 60×60px minimum
|
||||
- **Effort:** 15 minutes
|
||||
|
||||
### 🟡 High Priority (Accessibility Issue)
|
||||
2. **Missing ARIA Labels (14 buttons)**
|
||||
- **Impact:** Screen readers can't identify actions
|
||||
- **Fix:** Add `aria-label` to icon-only buttons
|
||||
- **Effort:** 30 minutes
|
||||
|
||||
[Continue...]
|
||||
|
||||
---
|
||||
|
||||
## Quick Wins (High Impact, Low Effort)
|
||||
|
||||
| Fix | Impact | Effort | ROI |
|
||||
|-----|--------|--------|-----|
|
||||
| Enable Vite gzip compression | -40% bundle size | 5 min | ⭐⭐⭐⭐⭐ |
|
||||
| Add loading skeletons | +20% perceived speed | 1 hr | ⭐⭐⭐⭐ |
|
||||
| Increase touch targets to 60px | Marine usability | 15 min | ⭐⭐⭐⭐⭐ |
|
||||
| Add database indexes | -80% query time | 30 min | ⭐⭐⭐⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
## Lighthouse Score Projection
|
||||
|
||||
| Metric | Current (Estimated) | After Fixes | Target |
|
||||
|--------|---------------------|-------------|--------|
|
||||
| Performance | 68 | 92 | >90 |
|
||||
| Accessibility | 81 | 96 | >90 |
|
||||
| Best Practices | 87 | 95 | >90 |
|
||||
| SEO | 92 | 100 | >90 |
|
||||
|
||||
---
|
||||
|
||||
## Total Effort Estimate
|
||||
|
||||
| Priority | Issues | Hours | Cost (€80/hr) |
|
||||
|----------|--------|-------|---------------|
|
||||
| Critical | 3 | 4 hrs | €320 |
|
||||
| High | 8 | 12 hrs | €960 |
|
||||
| Medium | 12 | 16 hrs | €1,280 |
|
||||
| **Total** | **23** | **32 hrs** | **€2,560** |
|
||||
|
||||
---
|
||||
|
||||
## Recommendations Priority Order
|
||||
|
||||
1. **Week 1:** Fix critical performance issues (bundle splitting, N+1 queries, indexes)
|
||||
2. **Week 2:** Fix marine UX issues (touch targets, contrast, font sizes)
|
||||
3. **Week 3:** Accessibility improvements (ARIA, keyboard nav)
|
||||
4. **Week 4:** Polish (animations, micro-interactions, loading states)
|
||||
|
||||
---
|
||||
|
||||
## Conclusion
|
||||
|
||||
NaviDocs has a solid foundation but needs optimization for marine environments and performance at scale. Most issues are quick fixes with high ROI.
|
||||
|
||||
**Most Critical Fix:** Increase touch targets to 60×60px (15 minutes, massive UX improvement)
|
||||
**Biggest Performance Win:** Add database indexes (30 minutes, 10× query speedup)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Start your analysis now. Be thorough but actionable. Focus on fixes that matter to yacht owners using the app in real marine conditions (bright sun, gloves, boat motion).**
|
||||
181
LAUNCH_REVIEWS.md
Normal file
181
LAUNCH_REVIEWS.md
Normal file
|
|
@ -0,0 +1,181 @@
|
|||
# Launch Parallel Code Reviews - Quick Guide
|
||||
|
||||
## ✅ Services Started
|
||||
|
||||
**Backend:** http://localhost:3201 (Node.js Express)
|
||||
**Frontend:** http://localhost:3200 (Vite dev server)
|
||||
|
||||
**Process IDs:**
|
||||
- Server: Check with `ps aux | grep "node index.js"`
|
||||
- Client: Check with `ps aux | grep vite`
|
||||
|
||||
**Logs:**
|
||||
- Backend: `/tmp/navidocs-server.log`
|
||||
- Frontend: `/tmp/navidocs-client.log`
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Launch Reviews (2 Options)
|
||||
|
||||
### **Option 1: Automated Parallel Reviews**
|
||||
|
||||
Both Codex and Gemini review simultaneously (5-10 minutes):
|
||||
|
||||
```bash
|
||||
cd /home/setup/navidocs
|
||||
./run-parallel-reviews.sh
|
||||
```
|
||||
|
||||
This will:
|
||||
- ✅ Check services are running
|
||||
- 🤖 Launch Codex review (security + architecture)
|
||||
- 💎 Launch Gemini review (performance + UX)
|
||||
- 📊 Generate 2 reports in `reviews/` directory
|
||||
|
||||
---
|
||||
|
||||
### **Option 2: Manual Reviews**
|
||||
|
||||
**For Codex (if you have codex CLI):**
|
||||
```bash
|
||||
cd /home/setup/navidocs
|
||||
cat CODEX_SIMPLE_PROMPT.txt | codex --model gpt-5-high --max-tokens 16000 > reviews/codex_manual.md
|
||||
```
|
||||
|
||||
**For Gemini (using gemini CLI):**
|
||||
```bash
|
||||
cd /home/setup/navidocs
|
||||
cat GEMINI_REVIEW_PROMPT.txt | gemini chat > reviews/gemini_manual.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 What Each Reviewer Focuses On
|
||||
|
||||
### **Codex GPT-5 High:**
|
||||
- 🔒 **Security:** SQL injection, XSS, auth bypasses, file upload vulnerabilities
|
||||
- 🏗️ **Architecture:** Code organization, separation of concerns, component design
|
||||
- 📝 **Code Quality:** Naming, error handling, function complexity
|
||||
- ⚙️ **Best Practices:** OWASP Top 10, RBAC, secrets management
|
||||
|
||||
### **Gemini 2.0 Flash Thinking:**
|
||||
- ⚡ **Performance:** Bundle size, lazy loading, N+1 queries, database indexes
|
||||
- 🎨 **UX/UI:** Touch targets, contrast, font sizes, loading states
|
||||
- ♿ **Accessibility:** ARIA labels, keyboard nav, screen readers
|
||||
- 📱 **Mobile:** Responsive design, marine environment (gloves, sunlight)
|
||||
|
||||
---
|
||||
|
||||
## 📊 Expected Output
|
||||
|
||||
Both reviews will generate markdown reports in `reviews/`:
|
||||
|
||||
```
|
||||
reviews/
|
||||
├── codex_20251114_162730.md (Security + Architecture)
|
||||
└── gemini_20251114_162730.md (Performance + UX)
|
||||
```
|
||||
|
||||
**Report Format:**
|
||||
- Executive summary (rating 1-10)
|
||||
- Critical issues (🔴 must fix before launch)
|
||||
- High priority issues (🟡 degrades experience)
|
||||
- Medium/low priority issues
|
||||
- Code examples (before/after fixes)
|
||||
- Effort estimates (hours + cost at €80/hr)
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Troubleshooting
|
||||
|
||||
**If services aren't running:**
|
||||
```bash
|
||||
# Check process status
|
||||
ps aux | grep -E "node index|vite"
|
||||
|
||||
# View logs
|
||||
tail -f /tmp/navidocs-server.log
|
||||
tail -f /tmp/navidocs-client.log
|
||||
|
||||
# Restart if needed
|
||||
cd /home/setup/navidocs
|
||||
./start-all.sh
|
||||
```
|
||||
|
||||
**If Codex CLI not found:**
|
||||
```bash
|
||||
# Install Codex CLI (if available)
|
||||
npm install -g @anthropic/codex-cli
|
||||
|
||||
# Or use API directly
|
||||
# Paste CODEX_SIMPLE_PROMPT.txt into your preferred Codex interface
|
||||
```
|
||||
|
||||
**If Gemini CLI not found:**
|
||||
```bash
|
||||
# Gemini CLI should be installed
|
||||
which gemini
|
||||
|
||||
# If not, check installation
|
||||
gemini --version
|
||||
|
||||
# Or run manually
|
||||
cat GEMINI_REVIEW_PROMPT.txt | gemini chat
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⏱️ Timeline
|
||||
|
||||
**Automated Reviews (Parallel):** 5-10 minutes total
|
||||
- Codex: 5-7 minutes (deep security scan)
|
||||
- Gemini: 3-5 minutes (performance analysis)
|
||||
|
||||
**Manual Reviews:** 2-3 hours per reviewer
|
||||
- Read prompts
|
||||
- Run audit commands
|
||||
- Analyze code
|
||||
- Write detailed reports
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Next Steps After Reviews
|
||||
|
||||
1. **Read both reports** (look for 🔴 critical issues first)
|
||||
2. **Merge findings** into single action plan
|
||||
3. **Fix critical issues** (usually <4 hours total)
|
||||
4. **Re-run reviews** to verify fixes
|
||||
5. **Commit improvements** to GitHub
|
||||
|
||||
---
|
||||
|
||||
## 📈 Success Metrics
|
||||
|
||||
**Security:**
|
||||
- 0 SQL injection vulnerabilities
|
||||
- 0 hardcoded secrets
|
||||
- 100% routes with authentication
|
||||
- 0 critical npm audit issues
|
||||
|
||||
**Performance:**
|
||||
- Bundle size <500KB gzipped
|
||||
- API responses <200ms p95
|
||||
- Lighthouse score >90 all categories
|
||||
- Database queries with indexes
|
||||
|
||||
**UX:**
|
||||
- Touch targets ≥60×60px (glove-friendly)
|
||||
- Contrast ratio ≥7:1 (sunlight readable)
|
||||
- ARIA labels on all interactive elements
|
||||
- 0 horizontal scroll on mobile
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Ready to Launch Reviews!
|
||||
|
||||
```bash
|
||||
cd /home/setup/navidocs
|
||||
./run-parallel-reviews.sh
|
||||
```
|
||||
|
||||
The reviewers will handle everything. Sit back and wait for comprehensive reports! ☕
|
||||
103
run-parallel-reviews.sh
Executable file
103
run-parallel-reviews.sh
Executable file
|
|
@ -0,0 +1,103 @@
|
|||
#!/bin/bash
|
||||
|
||||
# NaviDocs Parallel Code Review - Codex + Gemini
|
||||
# Both AI reviewers work simultaneously on different aspects
|
||||
|
||||
set -e
|
||||
|
||||
echo "╔═══════════════════════════════════════════════════════════════╗"
|
||||
echo "║ NaviDocs Parallel Code Review - Codex + Gemini ║"
|
||||
echo "╚═══════════════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
|
||||
cd /home/setup/navidocs
|
||||
|
||||
# Create reviews directory
|
||||
mkdir -p reviews
|
||||
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
echo "🚀 NaviDocs Services Status:"
|
||||
echo " Backend: http://localhost:3201 ($(curl -s http://localhost:3201/health > /dev/null && echo "✅ Running" || echo "❌ Down"))"
|
||||
echo " Frontend: http://localhost:3200 ($(curl -s http://localhost:3200 > /dev/null && echo "✅ Running" || echo "❌ Down"))"
|
||||
echo ""
|
||||
|
||||
echo "📋 Review Plan:"
|
||||
echo " • Codex GPT-5: Security + Architecture deep dive"
|
||||
echo " • Gemini 2.0 Flash Thinking: Performance + UX analysis"
|
||||
echo ""
|
||||
|
||||
# Launch Codex review in background
|
||||
echo "🤖 Starting Codex review (security & architecture focus)..."
|
||||
{
|
||||
echo "# Codex Review - Security & Architecture Focus" > reviews/codex_${TIMESTAMP}.md
|
||||
echo "" >> reviews/codex_${TIMESTAMP}.md
|
||||
echo "**Started:** $(date)" >> reviews/codex_${TIMESTAMP}.md
|
||||
echo "**Model:** GPT-5 High" >> reviews/codex_${TIMESTAMP}.md
|
||||
echo "" >> reviews/codex_${TIMESTAMP}.md
|
||||
|
||||
# If codex CLI exists, use it
|
||||
if command -v codex &> /dev/null; then
|
||||
cat CODEX_SIMPLE_PROMPT.txt | codex --model gpt-5-high --max-tokens 16000 >> reviews/codex_${TIMESTAMP}.md 2>&1
|
||||
else
|
||||
echo "⚠️ Codex CLI not found - skipping automated review" >> reviews/codex_${TIMESTAMP}.md
|
||||
echo "" >> reviews/codex_${TIMESTAMP}.md
|
||||
echo "**Manual review required. Use this prompt:**" >> reviews/codex_${TIMESTAMP}.md
|
||||
cat CODEX_SIMPLE_PROMPT.txt >> reviews/codex_${TIMESTAMP}.md
|
||||
fi
|
||||
|
||||
echo "✅ Codex review saved to reviews/codex_${TIMESTAMP}.md"
|
||||
} &
|
||||
CODEX_PID=$!
|
||||
|
||||
# Launch Gemini review in background
|
||||
echo "💎 Starting Gemini review (performance & UX focus)..."
|
||||
{
|
||||
echo "# Gemini Review - Performance & UX Focus" > reviews/gemini_${TIMESTAMP}.md
|
||||
echo "" >> reviews/gemini_${TIMESTAMP}.md
|
||||
echo "**Started:** $(date)" >> reviews/gemini_${TIMESTAMP}.md
|
||||
echo "**Model:** Gemini 2.0 Flash Thinking" >> reviews/gemini_${TIMESTAMP}.md
|
||||
echo "" >> reviews/gemini_${TIMESTAMP}.md
|
||||
|
||||
# Use gemini CLI
|
||||
if command -v gemini &> /dev/null; then
|
||||
cat GEMINI_REVIEW_PROMPT.txt | gemini chat >> reviews/gemini_${TIMESTAMP}.md 2>&1
|
||||
else
|
||||
echo "⚠️ Gemini CLI not found - skipping automated review" >> reviews/gemini_${TIMESTAMP}.md
|
||||
echo "" >> reviews/gemini_${TIMESTAMP}.md
|
||||
echo "**Manual review required. Use this prompt:**" >> reviews/gemini_${TIMESTAMP}.md
|
||||
cat GEMINI_REVIEW_PROMPT.txt >> reviews/gemini_${TIMESTAMP}.md
|
||||
fi
|
||||
|
||||
echo "✅ Gemini review saved to reviews/gemini_${TIMESTAMP}.md"
|
||||
} &
|
||||
GEMINI_PID=$!
|
||||
|
||||
echo ""
|
||||
echo "⏳ Waiting for reviews to complete (5-10 minutes)..."
|
||||
echo " Codex PID: $CODEX_PID"
|
||||
echo " Gemini PID: $GEMINI_PID"
|
||||
echo ""
|
||||
|
||||
# Wait for both to complete
|
||||
wait $CODEX_PID
|
||||
wait $GEMINI_PID
|
||||
|
||||
echo ""
|
||||
echo "╔═══════════════════════════════════════════════════════════════╗"
|
||||
echo "║ ✅ Both Reviews Complete! ║"
|
||||
echo "╚═══════════════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
echo "📄 Review Reports:"
|
||||
echo " • Codex: reviews/codex_${TIMESTAMP}.md"
|
||||
echo " • Gemini: reviews/gemini_${TIMESTAMP}.md"
|
||||
echo ""
|
||||
echo "📊 Combined Stats:"
|
||||
wc -l reviews/codex_${TIMESTAMP}.md reviews/gemini_${TIMESTAMP}.md
|
||||
echo ""
|
||||
echo "🔍 To view:"
|
||||
echo " cat reviews/codex_${TIMESTAMP}.md"
|
||||
echo " cat reviews/gemini_${TIMESTAMP}.md"
|
||||
echo ""
|
||||
echo " Or merge into single report:"
|
||||
echo " cat reviews/codex_${TIMESTAMP}.md reviews/gemini_${TIMESTAMP}.md > reviews/combined_${TIMESTAMP}.md"
|
||||
echo ""
|
||||
Loading…
Add table
Reference in a new issue