+
Readiness Dashboard
+
+ {/* Version Info */}
+
+
Environment: {version.environment}
+
Version: {version.version}
+
Commit: {version.commit}
+
Build: {version.build}
+
+
+ {/* Progress */}
+
+
+ System Readiness
+ {readyCount}/{totalCount} ({progress}%)
+
+
+
50 ? '#ffd700' : '#dc143c',
+ transition: 'width 0.3s',
+ }} />
+
+
+
+ {/* Systems */}
+
+ {systems.map(system => (
+
+
+
{system.name}
+
{system.details}
+
+
+
+ ))}
+
+
+ {/* Exit Criteria */}
+
+
Exit Criteria for External Pilots
+
+ - ✅ All functional checks pass
+ - ✅ No blocking bugs for multiple test missions
+ - ✅ Stable upload
+ - ✅ Logging works
+ - ✅ Backup works
+ - ✅ Version update without data loss
+ - ✅ New tester can install app independently
+ - ✅ New tester can complete mission without help
+ - ✅ Can debug mission from start to finish
+
+
+
+ );
+}
+
+function StatusBadge({ status }: { status: 'ready' | 'partial' | 'not-ready' }) {
+ const colors = {
+ ready: '#32cd32',
+ partial: '#ffd700',
+ 'not-ready': '#dc143c',
+ };
+
+ const labels = {
+ ready: '🟢 Ready',
+ partial: '🟡 Partial',
+ 'not-ready': '🔴 Not Ready',
+ };
+
+ return (
+
+ {labels[status]}
+
+ );
+}
+
+export default ReadinessDashboard;