diff --git a/.claude/ux-guidelines.md b/.claude/ux-guidelines.md index db9ac3f..8f8fa41 100644 --- a/.claude/ux-guidelines.md +++ b/.claude/ux-guidelines.md @@ -242,3 +242,23 @@ Updated workspace returns The interaction is consistent in intent — both modes confirm input acceptance and pause the active response area — but the page-level behaviour differs because one constructs from nothing while the other refines existing context. Users should never wonder whether their input has been accepted or whether the engine is still reasoning. + +## Workspace Polish (v0.7) + +The workspace should feel calm. Every visible element must justify its presence. + +Unknown values should usually be hidden rather than represented with placeholders. + +Whitespace is preferred over decorative UI. + +Prefer removing over adding. Prefer consistency over cleverness. + +Every section group should feel visually connected — spacing within a group is tighter than between groups. + +Labels should be brief. "Investigation History" → "History". "Your response" → "Response". The context already makes the meaning clear. + +Headings should be clean. Remove unnecessary subheadings that duplicate context. Remove uppercase labels from headings where they add visual noise without adding information. + +Cards should have consistent border radius, padding, and heading treatment across the workspace. + +An Investigation Map Preview should look provisional — lighter borders, muted text, subtle background — so the user knows it is a preview rather than completed content. diff --git a/components/investigation-map.jsx b/components/investigation-map.jsx index 1bf3d1d..213c49d 100644 --- a/components/investigation-map.jsx +++ b/components/investigation-map.jsx @@ -82,8 +82,8 @@ export default function InvestigationMap({ turnCount = 0 }) { if (!hasActiveTopics && groups.established.length === 0) return null; return ( -
-

+
+

Investigation Map Preview

diff --git a/components/investigation-summary-panel.jsx b/components/investigation-summary-panel.jsx index c3a3b23..072cdbd 100644 --- a/components/investigation-summary-panel.jsx +++ b/components/investigation-summary-panel.jsx @@ -132,40 +132,19 @@ function InvestigationSummaryPanel({ graph, selectedQuestion, result, updateStat

)} - {/* Questions */} -
-
- Questions answered - {questionsAnswered} -
-
- Still working on - {/* TODO: avoid implying 1 unknown = 1 remaining question */} - {isInvestigating ? ( - {questionsRemaining > 0 ? questionsRemaining + " items" : "—"} - ) : ( - - )} -
-
- - {/* Timestamps */} -
-
- Investigation started - {formatTimestamp(investigationStartTime)} -
-
- Last updated - {formatTimestamp(lastUpdatedAt)} -
- {elapsedSeconds > 0 && ( -
- Elapsed since last update - {humaniseDuration(elapsedSeconds)} + {/* Questions — hidden when no meaningful value to show */} + {isInvestigating && questionsRemaining > 0 && ( +
+
+ Questions answered + {questionsAnswered}
- )} -
+
+ Still working on + {questionsRemaining + " items"} +
+
+ )}
); } diff --git a/components/reasoning-workspace.jsx b/components/reasoning-workspace.jsx index 112823d..636d4e5 100644 --- a/components/reasoning-workspace.jsx +++ b/components/reasoning-workspace.jsx @@ -249,15 +249,14 @@ function CurrentInvestigationCard({ selectedQuestion, graph }) { return (
-

- Current investigation +

+ Investigation

{q}

{whyMattersText && ( -
-

Why this matters

-

{whyMattersText}

-
+

+ {whyMattersText} +

)}
); @@ -318,9 +317,9 @@ function CurrentUnderstandingCard({ currentSummary, plainLanguage }) { if (!summary) return null; return ( -
-

- Current understanding +
+

+ Understanding

{summary}

@@ -332,9 +331,9 @@ function PlainLanguageCard({ summary }) { if (!summary) return null; return ( -
-

- Current understanding +
+

+ Understanding

{summary}

@@ -363,22 +362,13 @@ function InvestigationHistoryCard({ turn }) { {displayedQuestion} -
-

- Your answer -

+

{turn.answer}

{turn.acknowledgement && ( - <> -
-

- What changed -

-

- {turn.acknowledgement} -

- +

+ {turn.acknowledgement} +

)}
@@ -393,8 +383,8 @@ function InvestigationHistory({ turns }) { return (
-

- Investigation history +

+ History

{turns.map((turn) => ( @@ -412,9 +402,9 @@ function OriginalSituation({ scenario, centralStatement }) { if (!text) return null; return ( -
-

- Original situation +
+

+ Situation

@@ -694,7 +684,7 @@ export default function ReasoningWorkspace({