Skip to content

Discovery

One-Liner

The Discovery page tracks multi-perspective discovery sessions, displaying findings from various analysis angles with real-time updates and export capabilities.


Pain Points Solved

Pain PointCurrent StateDiscovery Solution
No insight visibilityCan't see analysis resultsDedicated page for discovery sessions
Stale dataManual refresh requiredAuto-refresh every 3 seconds
Unstructured findingsHard to navigate resultsSplit pane with session list and findings detail
No exportCan't save findingsExport all or selected findings
Missing contextDon't know related issuesLink findings to related issues

Page Overview

Location: ccw/frontend/src/pages/DiscoveryPage.tsx

Purpose: Track discovery sessions and view findings from multiple perspectives (Product, Technical, Quality, Risk, Coverage, etc.).

Access: Navigation → Issues → Discovery tab OR directly via /discovery route

Layout

+--------------------------------------------------------------------------+
|  Discovery Title                                                           |
+--------------------------------------------------------------------------+
|  Stats Cards                                                                  |
|  +-------------+  +-------------+  +-------------+  +-------------+         |
|  | Total        |  | Completed    |  | Running      |  | Total        |         |
|  | Sessions     |  | Sessions     |  | Sessions     |  | Findings    |         |
|  +-------------+  +-------------+  +-------------+  +-------------+         |
+--------------------------------------------------------------------------+
|  Split Pane (3:1 ratio)                                                    |
|  +-----------------------+  +------------------------------------------+   |
|  | Session List (1/3)    |  | Findings Detail (2/3)                   |   |
|  |                       |  |                                          |   |
|  | - DiscoveryCard       |  | - Filters                                |   |
|  |   (status, findings)  |  | - Findings list                          |   |
|  |                       |  | - Export buttons                         |   |
|  | - Multiple sessions   |  | - Related issues links                   |   |
|  +-----------------------+  +------------------------------------------+   |
+--------------------------------------------------------------------------+

Core Features

FeatureDescription
Stats CardsFour metric cards showing total sessions, completed sessions, running sessions, and total findings count
Session ListLeft panel with discovery session cards showing status, findings count, and creation time
Findings DetailRight panel displaying detailed findings for the selected session
Auto-RefreshData refreshes every 3 seconds to show real-time progress
Findings FiltersFilter findings by perspective, category, or other attributes
Export FindingsExport all findings or only selected findings to file
Related IssuesClick on findings to navigate to related issues in the Issues panel
Status BadgesVisual indicators for session status (completed, running, pending)
Loading SkeletonsSkeleton placeholders during data fetch
Empty StatesFriendly message when no discovery sessions exist

Usage Guide

Basic Workflow

  1. View All Sessions: Browse all discovery sessions in the left panel
  2. Select Session: Click a session card to view its findings in the right panel
  3. Filter Findings: Use filter controls to narrow down findings by category
  4. Export Findings: Click "Export All" or "Export Selected" to save findings
  5. Navigate to Issues: Click on a finding to view related issues
  6. Monitor Progress: Watch running sessions update in real-time (3s auto-refresh)

Key Interactions

InteractionHow to Use
Select sessionClick a discovery card in the left panel to load its findings
Filter findingsUse filter controls in the findings detail panel to narrow results
Export all findingsClick "Export All" to download all findings for current session
Export selected findingsSelect specific findings, click "Export Selected"
Navigate to issueClick on a finding to open related issue in Issues panel
Auto-refreshData updates automatically every 3 seconds (no manual action needed)

Session Status

StatusIconDescription
CompletedGreen checkmarkDiscovery session finished successfully
RunningAmber spinnerDiscovery session is actively running
PendingGray clockDiscovery session is queued or not started
FailedRed XDiscovery session encountered an error

Finding Types

Findings can include various perspectives:

  • Product - Market fit, user value, business viability
  • Technical - Feasibility, tech debt, performance, security
  • Quality - Completeness, testability, consistency
  • Risk - Risk identification, dependencies, failure modes
  • Coverage - Requirement completeness vs discovery context

Components Reference

Main Components

ComponentLocationPurpose
DiscoveryPage@/pages/DiscoveryPage.tsxMain discovery tracking page
DiscoveryCard@/components/issue/discovery/DiscoveryCard.tsxSession card in list
DiscoveryDetail@/components/issue/discovery/DiscoveryDetail.tsxFindings detail view with filters and export

State Management

  • Local state:

    • None (all data from hooks)
  • Custom hooks:

    • useIssueDiscovery - Discovery sessions and findings data
      • Returns: sessions, activeSession, findings, filters, isLoadingSessions, isLoadingFindings, error
      • Methods: setFilters, selectSession, exportFindings, exportSelectedFindings
    • useIssues - Related issues data for finding navigation

Configuration

Auto-Refresh Interval

The discovery page automatically refreshes every 3 seconds:

typescript
const { sessions, findings, /* ... */ } = useIssueDiscovery({
  refetchInterval: 3000  // 3 seconds
});

Export Options

Export TypeDescription
Export AllExport all findings from the selected session
Export SelectedExport only the findings that are currently selected/checked

Released under the MIT License.