Files
Claude-Code-Workflow/docs/features/discovery.md

164 lines
6.9 KiB
Markdown

# 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 Point | Current State | Discovery Solution |
|------------|---------------|-------------------|
| **No insight visibility** | Can't see analysis results | Dedicated page for discovery sessions |
| **Stale data** | Manual refresh required | Auto-refresh every 3 seconds |
| **Unstructured findings** | Hard to navigate results | Split pane with session list and findings detail |
| **No export** | Can't save findings | Export all or selected findings |
| **Missing context** | Don't know related issues | Link 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
| Feature | Description |
|---------|-------------|
| **Stats Cards** | Four metric cards showing total sessions, completed sessions, running sessions, and total findings count |
| **Session List** | Left panel with discovery session cards showing status, findings count, and creation time |
| **Findings Detail** | Right panel displaying detailed findings for the selected session |
| **Auto-Refresh** | Data refreshes every 3 seconds to show real-time progress |
| **Findings Filters** | Filter findings by perspective, category, or other attributes |
| **Export Findings** | Export all findings or only selected findings to file |
| **Related Issues** | Click on findings to navigate to related issues in the Issues panel |
| **Status Badges** | Visual indicators for session status (completed, running, pending) |
| **Loading Skeletons** | Skeleton placeholders during data fetch |
| **Empty States** | Friendly 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
| Interaction | How to Use |
|-------------|------------|
| **Select session** | Click a discovery card in the left panel to load its findings |
| **Filter findings** | Use filter controls in the findings detail panel to narrow results |
| **Export all findings** | Click "Export All" to download all findings for current session |
| **Export selected findings** | Select specific findings, click "Export Selected" |
| **Navigate to issue** | Click on a finding to open related issue in Issues panel |
| **Auto-refresh** | Data updates automatically every 3 seconds (no manual action needed) |
### Session Status
| Status | Icon | Description |
|--------|------|-------------|
| **Completed** | Green checkmark | Discovery session finished successfully |
| **Running** | Amber spinner | Discovery session is actively running |
| **Pending** | Gray clock | Discovery session is queued or not started |
| **Failed** | Red X | Discovery 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
| Component | Location | Purpose |
|-----------|----------|---------|
| `DiscoveryPage` | `@/pages/DiscoveryPage.tsx` | Main discovery tracking page |
| `DiscoveryCard` | `@/components/issue/discovery/DiscoveryCard.tsx` | Session card in list |
| `DiscoveryDetail` | `@/components/issue/discovery/DiscoveryDetail.tsx` | Findings 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 Type | Description |
|-------------|-------------|
| **Export All** | Export all findings from the selected session |
| **Export Selected** | Export only the findings that are currently selected/checked |
---
## Related Links
- [Issue Hub](/features/issue-hub) - Unified issues, queue, and discovery management
- [Queue](/features/queue) - Issue execution queue management
- [Issues Panel](/features/issue-hub) - Issue list and GitHub sync
- [Terminal Dashboard](/features/terminal-dashboard) - Real-time session monitoring