experiment: separate conversation from workspace
This commit is contained in:
@@ -656,36 +656,18 @@ export default function ReasoningWorkspace({
|
|||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
{/* ═══════════════ ZONE 1 — Active work ═══════════════ */}
|
{/* ═══════════════ CONVERSATION — vertical flow ═══════════════ */}
|
||||||
|
|
||||||
|
{hasSelectedQuestion && (
|
||||||
<div className="space-y-6">
|
<div className="space-y-6">
|
||||||
|
|
||||||
{/* Investigation status & context — desktop: two-column; mobile: stacked */}
|
{/* Current Investigation — primary focus, full width */}
|
||||||
<div className="grid grid-cols-1 gap-6 md:grid-cols-3">
|
|
||||||
<InvestigationSummaryPanel graph={graph} selectedQuestion={selectedQ} result={result} updateStatus={updateStatus} />
|
|
||||||
<div className="md:col-span-2">
|
|
||||||
{hasSelectedQuestion && (
|
|
||||||
<>
|
|
||||||
<CurrentInvestigationCard selectedQuestion={selectedQ} graph={graph} />
|
<CurrentInvestigationCard selectedQuestion={selectedQ} graph={graph} />
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Post-update acknowledgement */}
|
{/* Post-update acknowledgement */}
|
||||||
{updateStatus === "success" && !isUpdating && <UpdateAcknowledgement updateResult={result} />}
|
{updateStatus === "success" && !isUpdating && <UpdateAcknowledgement updateResult={result} />}
|
||||||
|
|
||||||
{/* Active workspace (Question + Response) — full-width column */}
|
{/* Response — directly beneath the question */}
|
||||||
{hasSelectedQuestion && (
|
|
||||||
<div className="space-y-6">
|
|
||||||
{isUpdating && (
|
|
||||||
<LoadingOverlay
|
|
||||||
isLoading={true}
|
|
||||||
elapsed={updateElapsed}
|
|
||||||
currentMessage={updateMsg}
|
|
||||||
variant="update"
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{!isUpdating && canAnswer && (
|
{!isUpdating && canAnswer && (
|
||||||
<form onSubmit={handleUpdateCaptureAndSubmit} className="space-y-4 rounded-lg border border-gray-200 bg-white p-5">
|
<form onSubmit={handleUpdateCaptureAndSubmit} className="space-y-4 rounded-lg border border-gray-200 bg-white p-5">
|
||||||
<div>
|
<div>
|
||||||
@@ -716,8 +698,6 @@ export default function ReasoningWorkspace({
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
)}
|
)}
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* Terminal state — when no active question */}
|
{/* Terminal state — when no active question */}
|
||||||
{status === "success" && !hasSelectedQuestion && (
|
{status === "success" && !hasSelectedQuestion && (
|
||||||
@@ -732,32 +712,29 @@ export default function ReasoningWorkspace({
|
|||||||
)}
|
)}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{/* ═══════════════ ZONE 2 — Shared understanding ═══════════════ */}
|
)}
|
||||||
|
|
||||||
|
{/* History — growing naturally from Response */}
|
||||||
|
{investigationHistory.length > 0 && (
|
||||||
|
<InvestigationHistory turns={investigationHistory} />
|
||||||
|
)}
|
||||||
|
|
||||||
|
{/* ═══════════════ WORKSPACE — supporting context ═══════════════ */}
|
||||||
{hasSelectedQuestion && hasCurrentSummaryCondition && (
|
{hasSelectedQuestion && hasCurrentSummaryCondition && (
|
||||||
<div className="grid grid-cols-1 gap-6 lg:grid-cols-3">
|
<div className="grid grid-cols-1 gap-6 lg:grid-cols-3">
|
||||||
<div className="lg:col-span-2">
|
<div className="space-y-6 lg:col-span-2">
|
||||||
<CurrentUnderstandingCard currentSummary={graph?.currentSummary || result?.updatedSituationGraph?.currentSummary} plainLanguage={propUnderstanding || null} />
|
<CurrentUnderstandingCard currentSummary={graph?.currentSummary || result?.updatedSituationGraph?.currentSummary} plainLanguage={propUnderstanding || null} />
|
||||||
|
<InvestigationSummaryPanel graph={graph} selectedQuestion={selectedQ} result={result} updateStatus={updateStatus} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="lg:col-span-1">
|
<div className="space-y-6 lg:col-span-1">
|
||||||
|
<OriginalSituation scenario={scenario} centralStatement={graph?.centralStatement} />
|
||||||
<InvestigationMap turnCount={investigationHistory.length} />
|
<InvestigationMap turnCount={investigationHistory.length} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* ═══════════════ ZONE 3 — Reference and record ═══════════════ */}
|
{/* Developer details — full-width beneath workspace */}
|
||||||
<div className="grid grid-cols-1 gap-6 md:grid-cols-3">
|
|
||||||
<div className="md:col-span-1">
|
|
||||||
<OriginalSituation scenario={scenario} centralStatement={graph?.centralStatement} />
|
|
||||||
</div>
|
|
||||||
{investigationHistory.length > 0 && (
|
|
||||||
<div className="md:col-span-2">
|
|
||||||
<InvestigationHistory turns={investigationHistory} />
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/* Developer details — full-width beneath reference row */}
|
|
||||||
{(status === "success" || status === "error") && graph && (
|
{(status === "success" || status === "error") && graph && (
|
||||||
<DeveloperDetails
|
<DeveloperDetails
|
||||||
graph={graph}
|
graph={graph}
|
||||||
|
|||||||
@@ -125,12 +125,77 @@ Can grouping the interface into cognitive work zones make the wider canvas feel
|
|||||||
Hypothesis:
|
Hypothesis:
|
||||||
A workspace organised around what the investigator is doing will feel more coherent than one organised around equal cards or equal columns.
|
A workspace organised around what the investigator is doing will feel more coherent than one organised around equal cards or equal columns.
|
||||||
|
|
||||||
Change:
|
Result:
|
||||||
Arrange existing components into three visibly related zones:
|
Partially confirmed.
|
||||||
|
|
||||||
1. Active work
|
Learning:
|
||||||
2. Shared understanding
|
|
||||||
3. Reference and record
|
The workspace feels more coherent when organised into cognitive work zones rather than a simple document stack.
|
||||||
|
|
||||||
|
However, another distinction emerged that is more important than the zones themselves.
|
||||||
|
|
||||||
|
The interface naturally separates into two different modes:
|
||||||
|
|
||||||
|
• the active conversation between investigator and facilitator
|
||||||
|
|
||||||
|
and
|
||||||
|
|
||||||
|
• the shared workspace describing the current understanding.
|
||||||
|
|
||||||
|
Unexpected learning:
|
||||||
|
|
||||||
|
History feels incorrect when treated as reference information.
|
||||||
|
|
||||||
|
History is actually the continuation of the investigator's conversation.
|
||||||
|
|
||||||
|
Every response immediately becomes history.
|
||||||
|
|
||||||
|
The notebook should therefore grow naturally from the Response area.
|
||||||
|
|
||||||
|
The Investigation Status card currently competes with the Current Investigation card.
|
||||||
|
|
||||||
|
The current question is the primary focus.
|
||||||
|
|
||||||
|
Status is supporting context.
|
||||||
|
|
||||||
|
Decision:
|
||||||
|
|
||||||
|
Keep the cognitive-zone concept.
|
||||||
|
|
||||||
|
Refine the zones around conversational flow instead of card grouping.
|
||||||
|
|
||||||
|
Next question:
|
||||||
|
Can the workspace clearly separate conversation from shared understanding?
|
||||||
|
|
||||||
|
### Experiment 03 — Conversation versus Workspace
|
||||||
|
|
||||||
|
Hypothesis
|
||||||
|
|
||||||
|
Investigators think in two simultaneous modes.
|
||||||
|
|
||||||
|
Mode 1:
|
||||||
|
The conversation.
|
||||||
|
|
||||||
|
Question
|
||||||
|
↓
|
||||||
|
|
||||||
|
Response
|
||||||
|
↓
|
||||||
|
|
||||||
|
History
|
||||||
|
|
||||||
|
Mode 2:
|
||||||
|
The shared workspace.
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
Understanding
|
||||||
|
|
||||||
|
Situation
|
||||||
|
|
||||||
|
Map
|
||||||
|
|
||||||
|
Separating these should make the interface feel more like a facilitated investigation than a collection of cards.
|
||||||
|
|
||||||
Evaluation:
|
Evaluation:
|
||||||
Pending visual review.
|
Pending visual review.
|
||||||
|
|||||||
Reference in New Issue
Block a user