From f64efd28ae4b4c50835b658f0d3f9e00e1af688d Mon Sep 17 00:00:00 2001 From: Bernt Date: Thu, 2 Jul 2026 17:39:51 +0000 Subject: [PATCH] Kill List: Operations phase tool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - After each pilot day: identify 3 biggest irritations - Fix only those before next pilot day - Progress tracking with visual indicator - Add new irritations on the fly Part of OR-001 Operational Readiness. Next: Pilot 001 — Break the system! --- packages/ui/src/App.tsx | 3 + packages/ui/src/pages/KillList.tsx | 123 +++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 packages/ui/src/pages/KillList.tsx diff --git a/packages/ui/src/App.tsx b/packages/ui/src/App.tsx index c3715e319..778e31372 100644 --- a/packages/ui/src/App.tsx +++ b/packages/ui/src/App.tsx @@ -7,6 +7,7 @@ import FieldConsole from './pages/FieldConsole'; import HealthDashboard from './pages/HealthDashboard'; import PilotChecklist from './pages/PilotChecklist'; import ReadinessDashboard from './pages/ReadinessDashboard'; +import KillList from './pages/KillList'; function App() { const [developerMode, setDeveloperMode] = useState(false); @@ -37,6 +38,7 @@ function App() { Health Pilot Ready + Kill {developerMode && ( <> Data @@ -55,6 +57,7 @@ function App() { } /> } /> } /> + } /> ); diff --git a/packages/ui/src/pages/KillList.tsx b/packages/ui/src/pages/KillList.tsx new file mode 100644 index 000000000..efceb787a --- /dev/null +++ b/packages/ui/src/pages/KillList.tsx @@ -0,0 +1,123 @@ +/** + * Kill List + * + * After each pilot day: identify the 3 biggest irritations + * and fix only those before next pilot day. + */ + +import { useState } from 'react'; + +interface KillItem { + id: string; + text: string; + priority: number; + fixed: boolean; +} + +function KillList() { + const [items, setItems] = useState([ + { id: '1', text: 'Upload takes too long on slow connection', priority: 1, fixed: false }, + { id: '2', text: 'GPS accuracy drops in urban canyons', priority: 2, fixed: false }, + { id: '3', text: 'Cannot review mission after upload', priority: 3, fixed: false }, + ]); + + const toggleFixed = (id: string) => { + setItems(items.map(item => + item.id === id ? { ...item, fixed: !item.fixed } : item + )); + }; + + const addItem = (text: string) => { + const newItem: KillItem = { + id: Date.now().toString(), + text, + priority: items.length + 1, + fixed: false, + }; + setItems([...items, newItem]); + }; + + const fixedCount = items.filter(i => i.fixed).length; + + return ( +
+

Kill List

+

+ After each pilot day: identify the 3 biggest irritations. + Fix only those before next pilot day. +

+ +
+
+ Progress + {fixedCount}/{items.length} +
+
+
+
+
+ +
+ {items.map(item => ( +
+
+ + #{item.priority} {item.text} + +
+ +
+ ))} +
+ +
+ { + if (e.key === 'Enter') { + addItem(e.currentTarget.value); + e.currentTarget.value = ''; + } + }} + style={{ + width: '100%', + padding: 12, + border: '1px solid #ccc', + borderRadius: 8, + fontSize: 16, + }} + /> +
+
+ ); +} + +export default KillList;